2010-01-18 73 views
27

this question POP操作進入我的頭一個疑問:MySQL的 - TEXT VS CHAR和VARCHAR

  • CHAR和VARCHAR最多可以存儲255個字符
  • 文本,最多可存儲65000個字符
  • 字符大小字節是字符數
  • 字節
  • VARCHAR尺寸是字符的數目使用 + 1

TEXT實際佔用多少字節? 〜65kb或字符數使用 + 1?

+5

http://stackoverflow.com/search?q=[mysql]+text+vs+varchar – 2010-01-18 03:57:18

+0

非常好的鏈接,謝謝! – 2010-01-18 04:07:09

+2

'varchar大小以字節爲單位使用的字符數+ 1'這實際上取決於表中使用的編碼。例如,它可以是2個字節字符的「((字符數)* 2)+ 1」。請記住它是*字符數*而不是*字節數*。 – 2010-06-26 00:37:03

回答

24

TEXT是一種可變長度數據類型,最多可包含65,000個字符。

LONGTEXT可用於超過4萬億字符。

要回答你的問題:這是一個變量長度,它只會佔用你存儲的字符數量。

+4

加上一點點開銷來指示長度 - 而且LONGTEXT比TEXT有更多的開銷比VARCHAR開銷更多。 – 2010-01-18 03:58:47

+3

True:「LONGTEXT」中的「LONG」實際上表示多少個字符。一個長的值是8個字節,所以開銷是8個字節。雖然它不重要,但我沒有提到它。 – Pindatjuh 2010-01-18 04:15:00

+1

從邏輯上講,如果存儲256個或更多字符,VARCHAR和TEXT佔用相同數量的存儲空間,TEXT也會作爲BLOB – 2010-02-09 19:22:28

7

TEXT佔用數據的實際長度+ 2個字節。

+0

Soooo存儲? – rinogo 2015-02-26 23:25:11