Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Tamaño por defecto de INT

Estas en el tema de Tamaño por defecto de INT en el foro de Mysql en Foros del Web. Hola buenas de nuevo, Quisiera saber cual es el tamaño por defecto de un INT en mysql si no se le pone longitud de valores. ...
  #1 (permalink)  
Antiguo 18/04/2011, 10:24
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Tamaño por defecto de INT

Hola buenas de nuevo,

Quisiera saber cual es el tamaño por defecto de un INT en mysql si no se le pone longitud de valores. Es recomendable dejarlo sin especificar?

Un saludo!
  #2 (permalink)  
Antiguo 18/04/2011, 11:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Tamaño por defecto de INT

Eso lo puedes encontrar en el manual de referencia (MySQL Reference Manual::Tipos de columna). Incluso una interesante explicación de que esa "longitud" de valores no tiene efecto en el rango de al columna, porque sólo se usa para ajustar las columnas de salida en consola de sistema o formas semejantes.
Cita:
Tipo: INT
Longitud en Bytes: 4
Signed: -2147483648 al 2147483647
Unsigned: 0 al 4294967295
Mas detalles en: 11.2. Tipos numéricos
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/04/2011, 11:26
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Tamaño por defecto de INT

Hola muchas gracias por u respuesta,

Pero.. sigo con dudas, si yo coloco un número de caracteres ( por ejemplo varchar 10 ) y me paso, el sobrante no se guarda.. esto que quiere decir? que ocupa lo mismo en memoria una columna varchar 555 que varchar 10.. y a lo que decía el post.. merece la pena colocar la longitud? o sólo es para mostrar y consola?

Un saludo y muchas gracias!
  #4 (permalink)  
Antiguo 18/04/2011, 11:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Tamaño por defecto de INT

No confundas los elementos. Me estabas preguntando por los INT, no por los VARCHAR.
No es lo mismo un número que una cadena de texto. Un número no se almacena como cifra sino como binario, por lo que sólo se necesitan 8 bytes para representar el 18446744073709551615, como puedes ver en el link que te puse.
Una cadena de texto, en cambios, son conjuntos de bytes, y se necesitan tantos bytes como longitud tenga la cadena máxima a guardar en esa columna.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/04/2011, 11:36
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Tamaño por defecto de INT

Claro... cierto. Ahora esta claro. Muchas gracias, te debo 18446744073709551615! jeje

Un saludo!
  #6 (permalink)  
Antiguo 18/04/2011, 11:38
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Tamaño por defecto de INT

lo que te dice gnzsoloyo es lo que puede almacenar un int, pero cuando creas una tabla y le pones int a un campo el mysql por default 11
  #7 (permalink)  
Antiguo 18/04/2011, 11:41
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Tamaño por defecto de INT

De acuerdo, entonces... da igual poner longitud o no? ( a nivel de memoria )
  #8 (permalink)  
Antiguo 18/04/2011, 11:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Tamaño por defecto de INT

Porque 11 es la máxima longitud en caracteres de un número entero. Pero eso sólo tiene untilidad para hacer justificación de textos en la salida por consola, y no afecta el rango de valores, tal como lo describe el manual:
Cita:
MySQL soporta otra extensión para especificar de forma óptima el ancho a mostrar de un tipo entero en paréntesis después de la palabra clave para el tipo (por ejemplo, INT(4)). Esta especificación opcional del ancho de muestra se usa para alinear a la izquierda la muestra de los valores con ancho menor que el ancho especificado para la columna.

El ancho de muestra no restringe el rango de valores que pueden almacenarse en la columna, sino el número de dígitos que se muestran para valores con ancho que exceda el especificado para la columna.

Cuando se usa en conjunción con el atributo de extensión opcional ZEROFILL, el relleno por defecto de espacios se replaza por ceros. Por ejmplo, para una columna declarada como INT(5) ZEROFILL, un valor de 4 se muestra como 00004. Tenga en cuenta que si almacena valores mayores que el ancho de muestra en una columna entera, puede tener problemas cuando MySQL genera tablas temporales para algunos joins complicados, ya que en estos casos MySQL cree que los datos encajan en el ancho original de la columna.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 18/04/2011, 14:01
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Tamaño por defecto de INT

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Porque 11 es la máxima longitud en caracteres de un número entero. Pero eso sólo tiene untilidad para hacer justificación de textos en la salida por consola, y no afecta el rango de valores, tal como lo describe el manual:
De acuerdo,

Un saludo, y gracias de nuevo!

Etiquetas: defecto, int, tamaño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.