Un VARCHAR
largo se almacena de la misma manera que un TEXT
/BLOB
campo en InnoDB
.
A menos que necesite indexar estas columnas (en cuyo caso VARCHAR
es mucho más rápido) no hay razón para usar VARCHAR
sobre TEXT
para campos largos:hay algunas optimizaciones específicas del motor en MySQL
para ajustar la recuperación de datos según la longitud, y debe usar el tipo de columna correcto para aprovecharlos.
En caso de que esté utilizando MyISAM
una discusión detallada sobre el tema está aquí .
TEXT
y BLOB
se almacenan fuera de la tabla y la tabla solo tiene un puntero a la ubicación del almacenamiento real.
VARCHAR
se almacena en línea con la tabla. VARCHAR
es más rápido cuando el tamaño es razonable.
Según esta prueba
, VARCHAR
es aproximadamente tres veces más rápido que el texto.