由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 数据库里的B+树为啥要用个指针把最底层的相邻叶节点连起来?
相关主题
问一个老题目请教狗狗题:复制带随机指针的链表
怎么返回单链表里面的环的前一个节点的位置?下周要去onsite了,求bless 顺便发些最近FLGAM的面经
讨论 找单链表倒数m的节点a 面经
一算法面试题[讨论] 算法超级大总结-- 链表 近千行代码总结,欢迎大家进来补充
一道老题G家面筋。
再上一简单点面试题了问一个题目,谢谢。
一道MS面试题Amazon onsite面经加求祝福
M家请教一道二叉树的题
相关话题的讨论汇总
话题: 节点话题: 指针话题: 查找话题: 相邻话题: 结点
进入JobHunting版参与讨论
1 (共1页)
m********g
发帖数: 25
1
在B+树里,最底下一层的节点是叶节点,前一个
叶节点的最后一块地方里要放上后一个叶节点的
内存地址。
在B+树里查找一个数据(比方说查找一个学生的
编号)都是从根节点开始向下一层一层找,直到
第一次找到最底下的一层叶节点,就能找到这个
学生的学号。而并没有在叶节点之间有向右漂移
查找的动作,那么这个把相邻叶节点之间连起来
的指针有啥用啊?
K***s
发帖数: 621
2
便于做range scan/iterator
m********g
发帖数: 25
3
能展开说说吗?谢谢了

【在 K***s 的大作中提到】
: 便于做range scan/iterator
K***s
发帖数: 621
4
https://en.wikipedia.org/wiki/B%2B_tree#Implementation

【在 m********g 的大作中提到】
: 能展开说说吗?谢谢了
z**********f
发帖数: 74
5
如同上面克罗斯说的,你说的这个连接相邻的叶子结点的指针,有利于范围查找;举个
例子,如果单个statement,比如select studentID where studentID = 123, 这样的
确找到最底下的叶子结点就完成了,并没有向右漂移;但如果是select studentID
where studentID > 100这样的范围查找呢?因为结果可能在不同叶子结点里面;想想B
树,没有这个指针,只能中序遍历来找到所有的结果,而在B+树里有这个指针,那就直
接是链表的操作了,只要定义了范围的min和max,那么中间的所有叶子节点,就是结果
集,不用再去中序遍历,所以有了这个指针,range scan是不是快了很多?
另外,B+树跟B树还有一点不一样的是,root到不同叶子结点的距离都是一样的,叶子
结点存储实际数据,非叶子结点只存储PK,前者适合磁盘存储,后者适合内存存储,所
以相同内存下B+树可以存更多的索引,便于加速查找。
1 (共1页)
进入JobHunting版参与讨论
相关主题
昨天的MS面试一道老题
链表复制问题再上一简单点面试题了
关于找环的那道题目一道MS面试题
问一个链表的问题M家
问一个老题目请教狗狗题:复制带随机指针的链表
怎么返回单链表里面的环的前一个节点的位置?下周要去onsite了,求bless 顺便发些最近FLGAM的面经
讨论 找单链表倒数m的节点a 面经
一算法面试题[讨论] 算法超级大总结-- 链表 近千行代码总结,欢迎大家进来补充
相关话题的讨论汇总
话题: 节点话题: 指针话题: 查找话题: 相邻话题: 结点