B树的一种变种形式,B+树上的叶子结点存储关键字以及相应记录的地址,同等存储空间下比B-Tree存储更多Key。非叶子节点不对关键字记录的指针进行保存,只进行数据索引 , 树的层级会更少 , 所有叶子节点都在同一层, 叶子节点的关键字从小到大有序排列,叶子节点之间用指针连接, 构成有序链表(稠密索引)。
B+树上每个非叶子节点之间是一个双向链表进行链接,而叶子节点中的数据都是使用单向链表链接。
检索特点
当索引部分某个结点的关键字与所查的关键字相等时,并不停止查找,继续沿着关键字的指针向下,每次查询必须到叶子节点才能真正获取到相关数据。B+Tree叶子节点相连接,对树的遍历就是只需要一次线性遍历叶子节点。由于叶子节点的数据是顺序排列,方便区间查找,在B+树完成范围查找、排序查找、分组查找、去重查找比B-Tree效率更高。
动画演示: B+ Tree Visualization