贝利信息

mysql如何利用索引优化查询_mysql查询索引优化技巧

日期:2026-01-11 00:00 / 作者:P粉602998670
MySQL索引优化核心是命中合适索引并避免失效:高选择性列优先建索引;联合索引遵循最左前缀原则;避免在索引列上使用函数或表达式。

MySQL 查询性能优化的核心之一是合理使用索引。索引不是越多越好,关键在于让查询能命中合适的索引,并避免索引失效。

选择性高的列优先建索引

索引效果取决于列的区分度(即不同值的数量占比)。例如用户表中的 email 字段通常唯一或接近唯一,比 gender(只有男/女)更适合建索引。查询时如果 WHERE 条件用到低选择性字段(如 status=1),即使有索引,MySQL 也可能放弃使用而走全表扫描。

遵循最左前缀原则使用联合索引

联合索引 (a,b,c) 实际上等价于三个索引:(a)、(a,b)、(a,b,c)。WHERE 条件必须包含最左列 a 才可能用上该索引。

避免常见索引失效场景

即使字段上有索引,以下写法也会导致索引失效:

用 EXPLAIN 验证索引是否生效

执行 EXPLAIN SELECT ... 查看执行计划,重点关注:

不复杂但容易忽略。