我正在编写一个程序来检索给定范围内的对象数量,并且我正在使用 B 树数据结构来实现我的解决方案,因为对象数量无法容纳在 RAM 中。我看到几篇文章说 B+ 树在范围查询方面远远优于 B 树,并且被所有主要数据库实现所使用。我无法理解为什么B+树比B树优越,因为所有数据都存储在叶子上,并且需要h(树的高度)磁盘访问来检索节点并执行范围查询,而在B树中间隔可以位于父节点上,因此磁盘访问将被最小化。此外,如果我有一个查询,例如返回特定键的对象数,那么我可能能够在像 B+ 树一样一路下降到叶子之前找到该键。那么为什么他们说 B+ 树对于范围查询比 B 树更高效呢?如果我必须编写一个程序来执行范围查询,B 树不应该是正确的数据结构吗?提前感谢您的回复!