De los documents - Columna y Fila-Count-límites de tamaño de tabla:
Cada mesa (independientemente del motor de almacenamiento) tiene un tamaño máximo de fila de 65.535 bytes. Los motores de almacenamiento pueden imponer restricciones adicionales a este límite, reduciendo el tamaño de fila máximo efectivo.
El tamaño máximo de fila restringe el número (y posiblemente el tamaño) de las columnas porque la longitud total de todas las columnas no puede exceder este tamaño. Por ejemplo, los caracteres utf8 requieren hasta tres bytes por carácter, por lo que para una columna CHAR (utiles) utf8 CHAR (255), el servidor debe asignar 255 × 3 = 765 bytes por valor. En consecuencia, una tabla no puede contener más de 65,535/765 = 85 de tales columnas.
El almacenamiento para columnas de longitud variable incluye bytes de longitud, que se evalúan con respecto al tamaño de fila. Por ejemplo, una columna uthar8 VARCHAR (255) CHARACTER SET toma dos bytes para almacenar la longitud del valor, por lo que cada valor puede tomar hasta 767 bytes.
Por lo tanto, la definición de una sola columna VARCHAR(65535)
, efectivamente se limita a una sola columna en la fila (suponiendo que haya llenado para arriba).
Todo esto aparte del hecho de que un tamaño tan grande es completamente incorrecto para algunos tipos de datos; si tiene una columna de número de teléfono que puede contener números locales e internacionales, puede optar por usar un campo VARCHAR
para hacerlo , pero fijarlo en algo más de 20 puede no tener sentido (estoy siendo generoso).
Ver this answer de Bill Karwin que también indica posibles penalizaciones de rendimiento si consiguen tablas temporales generados con innecesariamente largo VARCHAR
campos (que ver con la conversión de dichos campos a CHAR
y viceversa - ver el mensaje para más detalles).
Pregunta relacionada si no es idéntica: http://stackoverflow.com/questions/262238/are-there-disadvantages-to-using-a-generic-varchar255-for-all-based-fields – JJJ
Gracias a todos por ¡tus comentarios! Soy nuevo en stackoverflow y aprecio sinceramente la receptividad de todos. :-) – tgoneil