2010-08-29 3 views
2

Будет ли поле TEXT использовать одно и то же пространство для хранения в базе данных, независимо от того, пусто оно, получено несколько символов или заполнено до предела?Фактический размер поля TEXT (MySQL)

ответ

4

На странице руководства Data Type Storage Requirements более подробно описаны требования к хранению каждого типа данных для механизма MyISAM.

Data Type Storage Required 
CHAR(M)  M × w* bytes, 0 <= M <= 255 
VARCHAR(M) L + 1 bytes if column values require 0 – 255 bytes 
      L + 2 bytes if values may require more than 255 bytes 
TINYTEXT L + 1 bytes, where L < 2^8 
TEXT  L + 2 bytes, where L < 2^16 

* ш число байтов, необходимых для символа максимальной длины в наборе символов

Итак, в заключение число байтов памяти, необходимых для хранения строки в столбце текста зависит от длина строки. Это отличается от CHAR(100), где требуется тот же объем памяти независимо от длины сохраненной строки.

+0

Я думаю, что пользователь означает тип 'TEXT' в MySQL, описанный на http://dev.mysql.com/doc/refman/5.1/en/blob.html. – MvanGeest

+0

Я думаю, что пользователь на самом деле имел в виду тип 'TEXT', а не' CHAR' или 'VARCHAR' (хотя руководство говорит, что' TEXT' можно рассматривать как 'VARCHAR' в большинстве случаев). – MvanGeest

+0

О, я понимаю, что вы имеете в виду, он специально хотел узнать о типе столбца TEXT. Я не заметил, что он был заглавный в названии (я отвечал на основании вопроса). Я уточню свой ответ, чтобы сделать его более конкретным. –

Смежные вопросы