MySQL VARCHAR 索引長度
MySQL 表的最大索引長度為 767 位元組。這是每列的,因此複合索引總共不能超過 767 位元組。但是,此規則有一些例外:
在您的具體情況下:
您建立的索引未被使用,因為它超過了最大索引長度 767 位元組。這是因為 MySQL 假定每個 UTF-8 字元佔 3 個字節,即 512 個字元 * 3 個位元組/字元 = 1536 個位元組。
要解決此問題,您可以:
將索引的長度減少到255 個字元或
ALTER TABLE products ADD INDEX (name(255));
啟用innodb_large_prefix 設定選項並使用DYNAMIC 或 COMPRESSED 行格式。
SET innodb_large_prefix = ON; ALTER TABLE products ROW_FORMAT=COMPRESSED;
其他注意:
以上是為什麼我的 MySQL VARCHAR(512) 索引沒有被使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!