了解UTF-8 列的MySQL varchar 索引長度
在MySQL 中,varchar(n) 列的索引長度在字元,而字元不是位元組。然而,MySQL 假定每個 UTF-8 字元佔用 3 個位元組。這表示對於指定索引長度為 n 的 varchar 列,實際上可以索引的最大位元組數為 3n。
細分:
對UTF-8 列索引大小的影響
基於每個字元3 個位元組的假設, MySQL 對UTF-8 字元集的varchar列的索引大小施加了實際限制。
動態與壓縮行格式的考量
在MySQL 8.0 及更高版本中,您可以使用DYNAMIC 來增加InnoDB 表中varchar 欄位的最大索引大小或壓縮行格式。這些行格式允許更長的前綴長度,有效地增加了索引大小限制。但是,早期 MySQL 版本(包括 5.5.27)不支援此最佳化。
索引設計建議
使用UTF-8 為varchar 列設計索引時字元集,建議:
以上是MySQL 如何處理 UTF-8 欄位的 VARCHAR 索引長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!