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