为什么B+树需要有指向下一个块的指针?

Why B+ tree need to have pointer pointing to next block?

在B+树的叶子节点,有两个指针,一个指向数据块,一个指向下一个索引块。

但是,我不太清楚索引块指针在B+树中的用法。当我们执行搜索时,我们遵循一组 "is A greater than B" 检查,最终它总是将我们带到包含数据的索引块。那么,为什么我们仍然需要索引指针才能跳转到下一个索引块?

支持更快的顺序遍历(常数 O(1))。如果您只需要随机读取请求,则可以避免使用此指针。当需要快速逆时序遍历时,不妨添加指向前一个块的指针。

B+树是一种常用于数据库索引实现的数据结构。树的每个节点都包含一个有序的键列表和指向树中较低级别节点的指针。这些指针可以被认为是在每个键之间。要在树中搜索或插入元素,需要加载根节点,找到搜索值之间的相邻键,然后跟随相应的指针指向树中的下一个节点。递归最终会得到想要的值或者值不存在的结论。

现在想想这个场景,你需要从 b+ 树中搜索一些东西,但它们都在磁盘中记住磁盘访问非常慢,读取单个块所花费的时间与读取部分块所花费的时间一样多。你不能让 b+ 树适应 ram。你把树的一部分带到公羊那里并搜索了它。并且无法找到您正在寻找的价值。有一个指向下一个块的指针来降低磁盘访问不是很好吗?