在b树中,您可以在内部节点和叶节点中存储键和数据,但是在b+树中,您必须只将数据存储在叶节点中。
在b+树中这样做有什么好处吗?
为什么不在任何地方使用b树而不是b+树,因为直观地它们看起来要快得多?
我的意思是,为什么需要在b+树中复制密钥(数据)?
发布于 2012-08-17 23:42:46
下图帮助显示了B+树和B树之间的差异。
B+树的优势:
B树的优势:
发布于 2009-05-15 19:05:43
B+树相对于B树的主要优点是,它们允许通过移除指向数据的指针将更多的指针打包到其他节点,从而增加了树的扇出,并潜在地降低了树的深度。
缺点是,当您在内部节点中找到匹配时,不存在早期退出。但是,由于这两种数据结构都有大量的扇形,所以无论如何,绝大多数匹配都将位于叶节点上,这使得B+树的效率更高。
发布于 2009-05-15 20:33:12
因为终端节点形成一个链接列表,所以B+Trees更容易更好地执行完全扫描,就像查看树索引的每一段数据一样。若要对B树进行全面扫描,您需要执行一次完整的树遍历,以查找所有数据。
另一方面,当您进行查找(按键查找特定数据)时,B树可能会更快,特别是当树驻留在RAM或其他非块存储中时。因为您可以提升树中常用的节点,所以获得数据所需的比较就更少了。
https://stackoverflow.com/questions/870218
复制相似问题