可用長度:
char 0 ~ 255
varchar 0 ~ 65535
儲存資料長度:
char 為建立 table 時所決定的長度
varchar 依你所存放的資料而定,直到你決定的最大長度
char
char 在實際儲存資料時,在右邊補滿空白name CHAR(5)
---------------------------------------
value actual_storage Space
---------------------------------------
'ex' 'ex ' 5 bytes
'exper' 'exper' 5 bytes
'expert' 'exper' 5 bytes
---------------------------------------
varchar
varchar 不填補空白,而是在額外用 1 到 2 byte 去記錄長度在 255 內用 1 byte,超過 255 就用到 2 byte
name VARCHAR(5)
---------------------------------------
value actual_storage Space
---------------------------------------
'ex' 'ex' 3 bytes
'expe' 'expe' 5 bytes
'expert' 'exper' 6 bytes
---------------------------------------
Reference:
CHAR vs VARCHAR in MySQL
Tsung's Blog - MySQL 欄位格式 CHAR 與 VARCHAR 的差異
沒有留言 :
張貼留言