B树和B+树的区别

B树 每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null
B树和B+树的区别

B+树 :只有叶子节点存储data,叶子节点包含了这颗是的所有值,叶子节点不存储指针
B树和B+树的区别

区别:

结构上:
  • B树中关键字集合分布在整棵树种,叶子节点种不包含任何关键字信息,而B+树关键字集合分布在叶子节点种,非叶子节点只是叶子节点种关键字的索引。
  • B树中任何一个关键字只出现在一个节点中,而B+树种的关键字必须出现在叶子节点中,也可能在非叶子节点中重复出现
性能上:(也即为什么说B+树比B树更适合实际应用中操作系统的文件索引和数据库索引)
  • 不同于B树只适合随机检索,B+树同时支持顺序检索
  • (数据库索引采用B+树的主要原因)B树在提高了磁盘IO性能的同时没有解决元素遍历的效率低下的问题,B+树的叶子节点使用指针顺序链接在一起,只要遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询时非常频繁的,而B树不支持这样的操作(或者说效率低下)