MySQL · 单选题 · 第 34 题
Java 后端开发面试 · 第 34 题
什么是覆盖索引?
- A一个索引覆盖了表中所有的数据行,没有遗漏
- B主键索引在 InnoDB 存储引擎里的另一种叫法
- C在同一个列上同时建了多个重复的索引
- D查询需要的列全部包含在某个索引里,不必回表
答案
D D. 查询需要的列全部包含在某个索引里,不必回表
解析
如果二级索引里已经有查询要的全部列,InnoDB 直接从索引返回结果,省掉按主键回表的随机 IO,EXPLAIN 的 Extra 列会显示 Using index。建联合索引时,把高频查询的返回列也包含进去,就是常见的优化手段。所有二级索引都天然包含主键列。