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中文网其他相关文章!