Как правило, нет. text
столбцы на самом деле хранятся вне строки, поэтому сами по себе они не занимают места в строке. Вместо этого в строке хранится указатель на столбец text
(который занимает места, но только 4 байта (зависит от системы) строки), но сам столбец text
будет оставайтесь пустыми, пока не заполните его.
Теперь столбцы varchar
будут выделять место для своего максимума при вставке, но только занимают пространство, необходимое его содержимому. Однако столбцы char
всегда будут использовать указанное пространство. Итак, вот как выглядит каждый столбец с фразой «вафли»:
varchar(15): 'waffles'
char(15): 'waffles '
text: 'waffles'
Надеюсь, это поможет.