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

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

相关推荐

谁知道呢_:要掉小珍珠了,库库学三年,这个结果
点赞 评论 收藏
分享
ResourceUtilization:差不多但是估计不够准确,一面没考虑到增长人口,另一方面也没考虑到能上大学的人数比例,不过我猜肯定只多不少
点赞 评论 收藏
分享
评论
4
5
分享

创作者周榜

更多
牛客网
牛客企业服务