算法答题框架数据结构

B+树和B树有什么不一样,B+树的叶子节点和非叶子节点有什么不一样,非叶子节点会不会存数据?

B+ 树适合磁盘索引,因为非叶子节点只保存 key 和指针,单页能放更多索引项,树高更低,随机 I/O 更少。 所有数据在叶子节点,且叶子节点有链表,范围查询和排序扫描更稳定;哈希索引虽然等值快,但不支持范围和有序遍历。

面试算法

答题框架

当前只提供答题框架,不代表已经完成事实与工程边界复核。

这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在算法里的可落地理解。 答题要点: 1. B+ 树适合磁盘索引,因为非叶子节点只保存 key 和指针,单页能放更多索引项,树高更低,随机 I/O 更少。 2. 所有数据在叶子节点,且叶子节点有链表,范围查询和排序扫描更稳定;哈希索引虽然等值快,但不支持范围和有序遍历。 3. 面试可以结合 InnoDB:聚簇索引叶子节点存整行,二级索引叶子节点存主键,回表就是用主键再查聚簇索引。 容易被追问: - 什么情况下会回表? - 联合索引为什么有最左前缀? 注意事项: - 不要只说 B+ 树快,要说快在哪里:页大小、树高、I/O 和范围查询。

答题练习

  1. 1B+ 树适合磁盘索引,因为非叶子节点只保存 key 和指针,单页能放更多索引项,树高更低,随机 I/O 更少。
  2. 2所有数据在叶子节点,且叶子节点有链表,范围查询和排序扫描更稳定;哈希索引虽然等值快,但不支持范围和有序遍历。
  3. 3面试可以结合 InnoDB:聚簇索引叶子节点存整行,二级索引叶子节点存主键,回表就是用主键再查聚簇索引。

常见错误

  • 不要只说 B+ 树快,要说快在哪里:页大小、树高、I/O 和范围查询。

可能追问

  • 什么情况下会回表?
  • 联合索引为什么有最左前缀?

来源记录

原始来源
小林coding
来源页面
数据结构与算法面试题
最近收录
2026-07-04
官方复核
数据结构与算法面试题、数据结构、了解哪些数据结构?、数组和链表区别是什么?、为什么数组查询的复杂度为O(1)?、说一下队列和栈的区别、介绍一下数据结构中的栈?怎么用 java 实现?、如何使用两个栈实现队列?、常见的队列有哪些及应用场景?、平衡二叉树结构是怎么样的?、红黑树说一下,跳表说一下?、你知道什么地方用了红黑树和跳表吗?