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