2011-12-18

[MySQL] char vs. varchar


可用長度:
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 的差異

沒有留言 :

張貼留言