知識點:SQL中char、varchar、text區別
阿新 • • 發佈:2018-06-04
超過 ID 指定 一個 最大 只知道 我們 ber pan
Char為定長,varchar,text為變長、
-
1、CHAR。CHAR存儲定長數據很方便,CHAR字段上的索引效率級高,比如定義char(10),那麽不論你存儲的數據是否達到了10個字節,都要占去10個字節的空間。
-
2、VARCHAR。存儲變長數據,但存儲效率沒有CHAR高。如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麽“+1”呢?這一個字節用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
- 3、TEXT。text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字符。
註意
Char,Varchar不像數值類型,有系統默認長度,所以必須在括號裏定義長度,可以有默認值
text不可以寫默認值,後面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數據的時候,超過你指定的長度還是可以正常插入(嚴格模式下沒有測試)
總結:char會造成空間浪費,但是有速度優勢;而varchar節省了空間,但是速度就不如char。
(1)經常變化的字段用varchar
(2)知道固定長度的用char
(3)盡量用varchar
(4)超過255字節的只能用varchar或者text
(5)能用varchar的地方不用text
知識點:SQL中char、varchar、text區別