Mysql
ENUM 列的排序規則會影響它們的大小嗎?
ENUM
當我們說 an具有utf8mb4
, 與的字元集時,這是什麼意思latin1
?我的理解是,它
ENUM
擁有一個數字索引(1、2、3、4…),用於標識哪些ENUM
值(abc、def、ghi、jkl…)。如果我使用
utf8mb4
一個ENUM
列,該列使用的儲存空間是否比我使用的多latin1
?
沒有不同。
ENUM
儲存為 1 或 2 字節的數字,其中 0 映射到列表中的第一項。您將列作為字元串處理,但磁碟只看到一個數字。僅當選項超過 255 個時才使用 2 字節。有些人完全避免使用 ENUM;有些人對多個選項不屑一顧。我說將 ENUM 用於一個很小的、不太可能改變的選項列表。
如果您的數據庫和連接規範不一致,可能會出現字元集或排序規則問題。