2009-08-20 50 views

回答

18

通常,沒有。 text列實際上是遠離行存儲的,所以它們本身不佔用行的空間。取而代之的是,該行保持的指針text列(其中確實佔用空間,但只有4個字節-ISH(取決於系統)的行),但要等到填充它的text柱本身將保持爲空。

現在,varchar列將在插入時爲其最大值分配空間,但只佔用其內容所需的空間。但是,char列將始終使用指定的空間。所以,在這裏就是每列看起來像一個短語「華夫餅乾」:

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

希望這有助於。

+1

這對所有類型的文本都適用,例如MediumText,LongText等?現在我正在使用inno-db引擎。也想確認它是否有任何形式的壓縮,我的意思是如果我只在文本字段中輸入10個字節,它是否會壓縮或獲取整個64 KB? – user2098324 2017-06-13 09:12:15