简简单单了解一下B+Tree和B-Tree

196 阅读1分钟

(1)B+Tree

是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都指向相邻的叶子节点的地址。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可。而B-Tree需要获取所有节点,相比之下B+Tree效率更高。

image

(2)B-Tree

B-Tree是为磁盘等外存储设备设计的一种平衡查找树。

B-Tree结构的数据可以让系统高效的找到数据所在的磁盘块。

B-Tree中的每个节点根据实际情况可以包含大量的关键字信息和分支。

缺点:B-Tree每个节点都保存数据,导致非叶子节点中能保存数据的指针变少(称为扇出),指针少又要保存大量数据则只能增加树的高度,IO操作变多,查询性能降低。

image

B+Tree相对于B-Tree区别:

  1. 非叶子节点只存储键值信息。
  2. 所有叶子节点之间都有一个链指针。
  3. 数据记录都存放在叶子节点中。