maximo - text mysql
¿Es VARCHAR(20000) válido en MySQL? (6)
Estoy en la necesidad de aclarar la longitud máxima de un campo varchar en MySQL.
Siempre pensé que la longitud máxima era de 255 (255 caracteres) que he supuesto, pero esta podría ser una fuente de confusión. Echando un vistazo a las tablas de una base de datos creada por una empresa externa con la que estamos trabajando, veo una configuración de campo como varchar (20000), que contiene fragmentos de xml de más de 255 caracteres. ¿Por qué funciona esto? ¿Es 20000 un valor válido?
Un poco de Google ha revelado que en mysql varchar tiene un límite de 65.535 bytes, y veo varchar (65535) en uso , entonces, ¿cómo se relaciona el límite de 255 con esto?
Aunque el índice no se puede construir en varchar (2000)
El manual de MySQL indica
Los valores en las columnas VARCHAR son cadenas de longitud variable. La longitud se puede especificar como un valor de 0 a 255 antes de MySQL 5.0.3 y de 0 a 65.535 en 5.0.3 y versiones posteriores.
Entonces depende de la versión que estás usando.
Es válido desde la versión 5.0.3, cuando cambiaron la longitud máxima de 255 a 65535.
CHAR
siempre ha sido 255 máx.
Esta pregunta ya tiene una respuesta en ¿Cuál es el tamaño máximo de MySQL VARCHAR?
Tenga en cuenta que MySQL tiene un límite máximo de tamaño de fila
La representación interna de una tabla MySQL tiene un límite de tamaño máximo de fila de 65.535 bytes, sin contar los tipos BLOB y TEXT. Las columnas BLOB y TEXT solo contribuyen de 9 a 12 bytes hacia el límite de tamaño de fila porque sus contenidos se almacenan por separado del resto de la fila. Obtenga más información acerca de los límites en el recuento de columnas de tabla y el tamaño de fila.
El tamaño máximo que puede ocupar una sola columna es diferente antes y después de MySQL 5.0.3
Los valores en las columnas VARCHAR son cadenas de longitud variable. La longitud se puede especificar como un valor de 0 a 255 antes de MySQL 5.0.3 y de 0 a 65.535 en 5.0.3 y versiones posteriores. La longitud máxima efectiva de un VARCHAR en MySQL 5.0.3 y posterior está sujeta al tamaño máximo de fila (65.535 bytes, que se comparte entre todas las columnas) y al juego de caracteres utilizado.
Sin embargo, tenga en cuenta que el límite es menor si utiliza un conjunto de caracteres de múltiples bytes como utf8 o utf8mb4.
Use los tipos de TEXT
para superar el límite de tamaño de fila.
Los cuatro tipos de TEXTO son TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT. Estos corresponden a los cuatro tipos BLOB y tienen las mismas longitudes máximas y requisitos de almacenamiento.
Si espera entradas demasiado grandes, es una mejor idea utilizar TEXT, MEDIUMTEXT o LONGTEXT en su lugar.
Tenga en cuenta las versiones de MySQL.
http://dev.mysql.com/doc/refman/5.0/en/char.html
Los valores en las columnas VARCHAR son cadenas de longitud variable. La longitud se puede especificar como un valor de 0 a 255 antes de MySQL 5.0.3 y de 0 a 65.535 en 5.0.3 y versiones posteriores. La longitud máxima efectiva de un VARCHAR en MySQL 5.0.3 y posterior está sujeta al tamaño máximo de fila (65.535 bytes, que se comparte entre todas las columnas) y al juego de caracteres utilizado.
¿Qué versión de MySQL tengo?
Ejecute la siguiente consulta ...
select version() as myVersion