mysql 選擇什麼樣的 string 類型

關於 char,varchar 與 text 平時沒有太在意,一般來說,可能現在大家都是用 varchar。

但是當要存儲的內容比較大時,究竟是選擇 varchar 還是 text 呢?不知道。。。。。。於是去查閱了一些資料,順便將這三種類型做個比較:

(1)char: char 不用多說了,它是定長格式的,但是長度範圍是 0~255. 當你想要儲存一個長度不足 255 的字符時,mysql 會用空格來填充剩下的字符。因此在讀取數據時,char類型的數據要進行處理,把後面的空格去除。

(2)varchar: 關於 varchar,有的說最大長度是 255,也有的說是 65535,查閱很多資料後發現是這的:varchar 類型在 5.0.3 以下的版本中的最大長度限制爲 255,而在 5.0.3及以上的版本中,varchar 數據類型的長度支持了 65535,也就是說可以存放 65532 個字節(注意是字節而不是字符!!!)的數據(起始位和結束位佔去了 3 個字節),也就是說,在 5.0.3 以下版本中需要使用固定的 TEXT 或 BLOB 格式存放的數據可以在高版本中使用可變長的 varchar 來存放,這樣就能有效的減少數據庫文件的大小。

(3)text:與 char 和 varchar 不同的是,text 不可以有默認值,其最大長度是 2 的 16 次方-1

總結起來,有幾點:

1. 經常變化的字段用 varchar

2. 知道固定長度的用 char

3. 儘量用 varchar

4. 超過 255 字符的只能用 varchar 或者 text

5. 能用 varchar 的地方不用 text

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章