面经 - MySQL的B+树相关
MySQL的B+树特点
- 所有数据存储在叶子节点:B+树的非叶子节点仅存储键值和指向子节点的指针,而叶子节点存储实际的数据。
- 叶子节点形成有序链表:叶子节点通过指针连接成一个链表,支持高效的范围查询和顺序访问。
- 自平衡性:B+树是一种自平衡的多路查找树,通过节点分裂和合并操作保持平衡,确保查询操作的时间复杂度为O(logN)。
- 高效磁盘I/O:B+树的节点较大,适合存储在磁盘上,减少磁盘访问次数,提高查询效率。
B+树的删除过程
- 查找要删除的数据:从根节点开始逐层查找,直到找到叶子节点。
- 删除数据:如果叶子节点的剩余键值数量大于最小要求,则直接删除数据。
- 节点调整:
如果叶子节点的键值数量少于最小要求,会尝试与相邻的兄弟节点合并或借位。
如果兄弟节点也无法合并,父节点的索引键值会下移,进行借位操作。
合并或借位操作会沿树的路径向上进行,知道合适的位置或根节点。 - 树的高度可能减少:如果根节点的子树被合并,树的高度会减少。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ahao的休憩小屋!


