1.B+树是应文件系统产生的B树的变种。它依然是一颗多路查找树,与B树相比它的不一样体如今:数据库
(1).若是非叶子节点包含n个关键码,则这个节点有n个子树。性能
(2).非叶子节点仅包含关键码信息,叶子节点包含关键码以及含有这个关键码的记录的指针。因此查找时,B+树必须到达叶子节点才会命中。spa
(3).叶子节点包含有兄弟叶子节点的指针,并且叶子节点的关键码值是有序的,有利于遍历。操作系统
(4).全部的非叶子节点可当作是索引部分(稀疏索引)指针
2.为何说B+树比B树更适合实际应用中做为操做系统的文件索引和数据库索引?索引
(1)B+树的磁盘读写代价更低内存
非叶子节点包含的信息更少,若是把同一节点的全部信息放在一个磁盘块中,则能够比B树放入更多的关键码。一次读入内存当中(读一个块)就能读入更多的关键码,因此下降了磁盘I/O总数。效率
(2)查询效率更加稳定遍历
对任何关键字的查找都必须从根节点走到叶子节点,路径长度相同,因此对每条数据的查询效率至关。数据
(3)B树在提升磁盘I/O性能的同时并无解决元素遍历效率低下的问题。而B+树由于叶子节点有链指针存在,因此遍历叶子节点便可以实现对整棵树的遍历。而在数据库中基于范围的查询是很是频繁的,B+树就能更好的支持。