MySQL为什么叶子节点使用的是双向链表?

今天去面试一个小公司问到的一个问题,当时脑子卡了一下,然后觉得范围查找,分组查找,排序查找好像通过单向链表也可以实现,所以这个问题可能没有答出来,然后现在觉得使用双向链表的原因是MySQL在维护这个B+数索引页的时候,有时候因为存放的主键值不一定是自增的,所以就可能需要频繁的裂页、分页来维护这个B+树索引,所以在裂页的时候通过双向列表就可以直接找到前驱节点了,不需要再重新遍历链表,所以使用了双向链表;
全部评论
底层叶子结点是数据页,数据页里要进行二分查找确定到最终的记录,我记得叫next record还是啥的
2 回复 分享
发布于 2023-09-29 02:22 湖北
你怎么查小于某个值的数据?
点赞 回复 分享
发布于 2023-10-25 14:12 浙江
为什么找到前驱的叶子结点,就可以完成分页了……
点赞 回复 分享
发布于 2023-09-25 23:33 江苏

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
评论
4
5
分享

创作者周榜

更多
牛客网
牛客企业服务