标准答案

  1. 磁盘或 SSD 访问的成本远高于内存比较,B+ 树用较大的扇出让树高保持很低,查找只需访问少量页。
  2. B+ 树内部节点主要存键和指针,叶子节点存完整索引项并按顺序链接,适合连续范围扫描。
  3. 等值查询、BETWEEN、范围条件、ORDER BY 和最左前缀匹配都可以利用 B+ 树的有序性。
  4. 哈希索引把键映射到桶,等值命中快,但无法从一个哈希值顺序走到相邻值,范围和排序通常无效。
  5. 索引是否有效还取决于选择性、查询条件、回表成本和优化器估算,不能只因为字段建了 B+ 树就期待所有 SQL 变快。

题目解析

B+ 树的优势不是抽象算法复杂度,而是页式存储下的 I/O 友好性。一个节点能容纳很多键,根和上层节点常驻缓存后,常见查询只需要读取很少的叶子页。

哈希索引并非落后,它在纯等值、内存型或特定引擎场景仍有价值。但业务查询通常需要时间范围、排序、前缀或复合条件,因此关系型数据库普遍以 B+ 树作为通用默认。

常见误区

  • 把 B+ 树只解释成“二叉树更快”,忽略它的高扇出、页结构和叶子有序链表。
  • 以为哈希索引可以优化 LIKE 前缀、范围筛选或 ORDER BY。

作者信息