2009-08-20 50 views

Respuesta

18

Normalmente, no. text las columnas se almacenan lejos de la fila, por lo que no ocupan espacio en la fila, per se. En cambio, la fila mantiene un puntero a la columna text (que ocupa ocupa espacio, pero solo 4 bytes-ish (depende del sistema) una fila), pero la columna text permanecerá vacía hasta que la rellene.

Ahora, varchar columnas asignarán espacio para su máximo en la inserción, pero solo ocuparán el espacio necesario por su contenido. char columnas, sin embargo, siempre utilizará el espacio especificado. Por lo tanto, esto es lo que se ve cada columna con la frase "waffles":

varchar(15): 'waffles' 
char(15): 'waffles  ' 
text:  'waffles' 

Esperemos que esto ayude.

+1

¿Esto se cumple para todos los tipos de texto, es decir texto medio, texto largo, etc.? Estoy usando el motor inno-db por ahora. También quería confirmar si se realiza algún tipo de compactación, es decir, si pongo solo 10 bytes en el campo de texto, ¿se compactará o adquirirá 64 KB? – user2098324

Cuestiones relacionadas