MST

星途 面试题库

面试题:MySQL性能剖析常见误区之索引使用误区

在MySQL性能剖析中,索引使用存在一些常见误区。请阐述在查询优化时,关于索引使用可能出现的一个误区,并说明如何规避它。
42.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

误区

认为只要添加索引就一定能提升查询性能。在一些情况下,例如表数据量极小,或者索引列选择性很差(大量重复值)时,索引不仅不能提升性能,反而可能因为索引维护开销降低性能。比如在性别列(只有男、女两种值)上建立索引,查询时优化器可能不会选择使用该索引,因为全表扫描成本可能更低,而索引维护还会消耗额外资源。

规避方法

  1. 分析数据分布:使用 ANALYZE TABLE 语句来更新表的统计信息,让优化器能更准确评估索引的使用成本。通过查看索引选择性,即不同值的数量与总行数的比例,选择性越高索引效果越好。如果选择性低,需考虑是否真的需要该索引。
  2. 测试验证:在开发或测试环境中,针对不同查询场景,分别测试有索引和无索引的执行时间、资源消耗等指标。可以使用 EXPLAIN 关键字查看查询执行计划,观察索引是否被正确使用以及查询的成本估算,根据结果决定是否调整索引策略。