B树与B+树


B树

B树也叫B-树,与二叉树相比,B树其实就是多叉树。

二叉树上,每个节点中只有1个元素,2个子节点,而一棵N阶的B树中,每个节点最多N-1个元素,N个子节点,且B树每条路径的高度是一样的,最底层的节点称之为叶子节点

如下图就是一个4阶的B树:

B+树

B+树是B树的一个变种,它与B树最大的区别是:

  1. B+树的叶子节点拥有所有的数据,非叶子节点仅仅起到一个索引的作用
  2. B+树的叶子节点通过指针连接

例如将[1,2,3,4,5,6,7,12,23]分别插入B树和B+树,分别如下:

从上图可以看出,B树的每个节点都存有数据,且不重复,而B+树的非叶子作为索引,叶子节点存数据,是可能重复的

MySQL数据库就是使用了B+树作为数据存储的结构,由于叶子节点形成了一个链表,因此做范围查询也十分的方便

关于MySQL可以参考:MySQL数据与索引

文章作者: 周君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周君 !
评论