Mysql Text DataType резервирует любое пространство памяти - PullRequest
8 голосов
/ 20 августа 2009

Я хочу знать, резервирует ли mysql TEXT тип данных какое-либо пространство, даже если в этой строке нет данных?

Я немного запутался. Может ли кто-нибудь предоставить мне какой-либо вклад в этом.

1 Ответ

20 голосов
/ 20 августа 2009

Как правило, нет. text столбцы на самом деле хранятся вне строки, поэтому сами по себе они не занимают места в строке. Вместо этого в строке хранится указатель на столбец text (который занимает места, но только 4 байта (зависит от системы) строки), но сам столбец text будет оставайтесь пустыми, пока не заполните его.

Теперь столбцы varchar будут выделять место для своего максимума при вставке, но только занимают пространство, необходимое его содержимому. Однако столбцы char всегда будут использовать указанное пространство. Итак, вот как выглядит каждый столбец с фразой «вафли»:

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...