星海

数据库 · 单选题 · 第 34 题

计算机基础面试八股 · 第 34 题

InnoDB 中通过普通二级索引查询,需要返回索引中没有的列时,执行过程是?

  1. A二级索引的叶子节点直接存放了整行数据,不需要再访问别的索引
  2. B先在二级索引中找到主键值,再到聚簇索引中按主键取出整行(回表)
  3. C二级索引叶子节点存的是行的物理地址,直接按地址到数据文件读取
  4. D只要有列不在索引里,就放弃使用该索引,改为对整张表进行扫描

答案

B B. 先在二级索引中找到主键值,再到聚簇索引中按主键取出整行(回表)

解析

InnoDB 是索引组织表,整行数据只存在主键的聚簇索引里,二级索引的叶子节点存的是「索引列 + 主键值」。所以要多走一次主键索引,这叫回表。存物理地址的是 MyISAM 的做法。如果查询的列都在二级索引里,就能形成覆盖索引,省掉回表。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。