B+树中的B不是代表的二叉(Binary),而是代表平衡(Balance),因为B+树是从最早的平衡二叉树演化而来,但是B+树不是一个二叉树。
一步一步的迭代
1、二叉树:相当于一个二分查找,二叉查找能大大提升查询的效率,但是极端情况下,二叉树会变成一个线性链表结构
2、平衡二叉树:通过旋转让失衡二叉树恢复平衡。缺点是数据量达到几百万后,树的高度会很恐怖,导致搜索效率不足,其二,存储的数据内容太少,没有很好利用操作系统和磁盘数据交换特性
3、多路平衡查找树(Balance Tree,也叫B-Tree)
B-Tree是为磁盘等外存储设备设计的一种平衡查找树。B-Tree结构的数据可以让系统高效的找到数据所在的磁盘块
B-Tree相对于AVLTree缩减了节点个数,使每次磁盘I/O取到内存的数据都发挥了作用,从而提高了查询效率
4、B+Tree
B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构,在B+Tree中,所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度
B+Tree相对于B-Tree有几点不同
1、非叶子节点只存储键值信息
2、所有叶子节点之间都有一个链指针
3、数据记录都存放在叶子节点中