B+树与B树的对比分析

      B+树和B树都是多叉树,像我们常见的二叉查找树,AVL树,红黑树都属于二叉树。我们都知道,InnoDB的索引底层的数据结构就是B+树,那么为什么不是B树呢?

      我们先通过这个网站(百度搜索 data structure visualization)可以在线直观的看到B+树和B树的结构的区别

      我们分别往B+树和B树里面插入111,222,333,444,555这五条数据,看一下它的分布有什么不同

      先看B+树

      

B+树与B树的对比分析_第1张图片

     再来看B树

    

B+树与B树的对比分析_第2张图片

 它们的区别如下:

 1.B+树的所有数据都存放在叶子节点上

2.B+树的叶子节点之间通过链表的形式相连

3.B+树的非叶子节点只存下一个节点的指针,而B树的非叶子节点不光存指针还要存数据

 正式因为B+树的这三个特性,使得在查找时效率比B树要高,所以Innodb的索引的底层数据结构才会使用B+树来实现。

你可能感兴趣的:(mysql数据库,数据结构)