Un int(11) no es lo que crees que es en MySQL

Un int(11) no es lo que crees que es en MySQL — Amit Merchant — Un blog sobre PHP, JavaScript y más

Aquí está el mito más grande que tenía sobre MySQL int tipo de datos que se acaba de bloquear mientras miraba uno de los videos del curso de desarrolladores de MySQL. Básicamente, lo he estado haciendo mal todo este tiempo.

Entonces, cuando diseñaba un esquema de base de datos, siempre usaba int(11) como el tipo de datos predeterminado para cualquier columna de enteros (y supongo que podría haberlo hecho en algún momento). Pero nunca supe lo que era 11 medio. Asumí que esa era la longitud predeterminada de toda la columna.

Sin embargo, resulta que ese no es el caso. EL 11 dentro int(11) Este no la longitud de toda la columna. Es solo un índice de ancho de visualización para el cliente MySQL.

Entonces, si tiene una columna que tiene un valor de 123 y lo definiste como int(11)el cliente MySQL lo mostrará como 123 pero si lo defines como int(5)lo mostrará como 00123.

Hay mejores tipos de datos enteros que puede usar para una columna según el contexto para el que desee usarlo.

Mira este cuadro primero.

Pegar Almacenamiento (bytes) Máximo sin firmar
TINYINT 1 255
PEQUEÑO 2 65535
MENTA MEDIANA 3 16777215
EN T 4 4294967295
EMPEZANDO 8 2^63-1

Como puede ver, tenemos una variedad de tipos de datos enteros en MySQL. EL TINYINT El tipo de datos es el tipo de datos entero más pequeño proporcionado por MySQL. Puede almacenar valores de 0 para 255. EL BIGINT El tipo de datos es el tipo de datos entero más grande proporcionado por MySQL. Puede almacenar valores de 0 para 2^63-1.

Eso significa que si cree que el valor de sus datos nunca superará 4294967295no use el int Tipo de datos. Simplemente estamos sobreasignando el espacio de almacenamiento para los datos. En su lugar, podemos usar un tipo de datos entero relativamente más pequeño como mediumint O smallint que aprovechará mejor el espacio de almacenamiento.

Fue una revelación muy interesante para mí y espero que también lo sea para ti.

Le recomiendo que pruebe el curso MySQL para desarrolladores, que tiene tantas cosas pequeñas como esta.

Si quieres conocer otros artículos parecidos a Un int(11) no es lo que crees que es en MySQL puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas