可用長度:
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 的差異
沒有留言 :
張貼留言