MySQL前缀索引怎么看?一文详解查看方法与优化技巧
要查看MySQL中的前缀索引,可以通过查询INFORMATION_SCHEMA.STATISTICS系统表或使用SHOW INDEX命令来获取索引的详细信息,其中SUB_PART字段的值直接表示前缀索引的长度。
在MySQL中,前缀索引是一种对字符串类型列(如CHAR、VARCHAR、TEXT等)只截取前几个字符创建的索引,既能节省存储空间,又能提升查询效率,以下是具体查看方法:

- 使用
SHOW INDEX命令:
执行SHOW INDEX FROM 表名;,在结果中关注Sub_part列,若该列显示为数字(如10),则表示索引使用了前10个字符作为前缀;若为NULL,则为完整列索引。 - 查询系统表:
通过SQL语句查看:SELECT COLUMN_NAME, SUB_PART FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名';
结果中
SUB_PART字段的数值即前缀长度。
为什么使用前缀索引?
- 节省空间:长字符串的完整索引可能占用大量存储,前缀索引仅保留部分字符。
- 提升性能:减少索引大小可加快索引扫描速度,尤其适用于前缀区分度高的场景(如邮箱前缀)。
注意事项:
- 区分度评估:前缀长度需保证足够的唯一性,可通过计算不同长度的前缀选择性来确定合适值,
SELECT COUNT(DISTINCT LEFT(列名, 长度)) / COUNT(*) AS 选择性 FROM 表名;
- 查询限制:前缀索引不支持
ORDER BY和GROUP BY的完整排序,也可能影响覆盖索引的使用。
合理使用前缀索引需权衡存储效率与查询需求,结合实际数据特征进行设计和验证,以达到数据库性能的最优平衡。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/6985.html发布于:2026-07-26





