MySQL 前缀索引
MySQL 前缀索引能有效减小索引文件的大小,提高索引的速度。但是前缀索引也有它的坏处:MySQL 不能在 ORDER BY 或 GROUP BY 中使用前缀索引,也不能把它们用作覆盖索引(Covering Index)。
建立前缀索引的例子:
1 # 语法 2 ALTER TABLE table_name ADD KEY(column_name(prefix_length)); 3 4 # 示例 5 ALTER TABLE city ADD KEY(cityname(7));
计算全列选择性的一个例子:
1 # 全列选择性 2 SELECT COUNT(DISTINCT column_name) / COUNT(*) FROM table_name; 3 4 # 测试某一长度前缀的选择性 5 SELECT COUNT(DISTINCT LEFT(column_name, prefix_length)) / COUNT(*) FROM table_name;
* 当前缀的选择性越接近全列选择性的时候,索引效果越好。
本文介绍了MySQL前缀索引的使用方法及其优缺点,并通过示例展示了如何创建前缀索引以及如何评估前缀的选择性。
2643

被折叠的 条评论
为什么被折叠?



