后端岗位面试题更新 2026-08-05

请解释MySQL中的索引下推机制,并说明它如何影响查询优化?

后端开发性能优化技术原理MySQL

考察说明

考察对MySQL索引下推原理及优化作用的理解。

回答思路

  1. 【回答框架 1】索引下推是MySQL 5.6引入的优化,指将WHERE条件中部分可下推的过滤条件下推到存储引擎层,在索引遍历时提前过滤,减少回表次数。
  2. 【回答框架 2】启用索引下推后,存储引擎在读取索引元组时,直接判断下推的条件,若不满足则跳过,仅对满足条件的元组回表获取完整行。这减少了回表次数和IO开销。
  3. 【回答框架 3】适用场景:联合索引中,对索引列的非最左前缀条件或部分范围条件。例如索引(a,b),查询WHERE a=? AND b>?,可将b>?下推。但下推条件必须为索引列,且不能包含函数或隐式转换。
  4. 【回答框架 4】索引下推与覆盖索引、回表的关系:若查询字段均在索引中,无需回表;否则下推仍有回表,但回表次数减少。其优化效果在大量数据下明显。
  5. 【关键点 1】索引下推将部分过滤条件下推到存储引擎层。
  6. 【关键点 2】减少回表次数,提升查询效率。
  7. 【关键点 3】适用于联合索引中非最左前缀的过滤条件。
  8. 【关键点 4】需满足条件为索引列且无函数或隐式转换。
  9. 【易错点 1】不要将索引下推误解为无需回表。
  10. 【易错点 2】下推条件不能包含非索引列或函数。
  11. 【易错点 3】使用时注意MySQL版本,5.6以下不支持。