星海

数据库 · 单选题 · 第 33 题

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

MySQL InnoDB 的索引采用 B+ 树而不是 B 树,主要原因是?

  1. AB+ 树在插入数据时节点永远不会分裂,所以写入性能比 B 树高出很多倍
  2. BB+ 树把所有行数据都放在根节点里,一次磁盘 IO 就能取到所有需要的数据
  3. CB 树只支持范围查询而不支持等值查询,不能满足 WHERE 条件中的等值过滤
  4. D非叶子节点不存数据,扇出大、树更矮;叶子节点用链表相连,便于范围查询

答案

D D. 非叶子节点不存数据,扇出大、树更矮;叶子节点用链表相连,便于范围查询

解析

磁盘 IO 以页为单位,非叶子节点不放数据,一页就能容纳上千个键,三四层的 B+ 树就能索引上千万行,查询只需几次 IO。数据全部在叶子节点并用双向链表相连,范围扫描顺着链表走即可。B+ 树插入时同样会发生页分裂,这也是推荐使用自增主键的原因。

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