Mysql中char,varchar與text型別的區別和選用
阿新 • • 發佈:2018-12-14
關於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
總結起來,有幾點:
- 經常變化的欄位用varchar
- 知道固定長度的用char
- 儘量用varchar
- 超過255字元的只能用varchar或者text
- 能用varchar的地方不用text