在B +树的叶节点处,有两个指针,一个指向数据块,另一个指向下一个索引块。
但是,我不太确定B +树中索引块指针的用法。当我们执行搜索时,我们遵循一组“是大于B”检查,最终它会将我们带到包含数据的索引块。那么,为什么我们仍然需要索引指针才能跳转到下一个索引块?
答案 0 :(得分:1)
支持更快的顺序遍历(常数O(1))。如果您只需要随机读取请求,则可以避免使用此指针。当需要快速逆顺序遍历时,您也可以添加指向前一个块的指针。
答案 1 :(得分:0)
B +树是数据库索引实现中经常使用的数据结构。树的每个节点都包含一个有序的键列表和指向树中较低级别节点的指针。可以认为这些指针位于每个键之间。要在树中搜索或插入元素,可以加载根节点,查找搜索到的值之间的相邻键,并在指向树中下一个节点的相应指针后面。递归最终会导致所需的值或该值不存在的结论。
现在想想这个场景,你需要从b +树中搜索一些东西,但是所有这些都在磁盘中,记住磁盘访问非常慢,读取单个块所需的时间与读取部分块一样多。你不能把b +树放到ram上。你把树的一部分带到了公羊并搜查了它。无法找到你想要的价值。指向下一个块以降低磁盘访问权限不是很好吗?