B树和B+树

https://blog.csdn.net/GY325416/article/details/100107547

https://segmentfault.com/a/1190000020416577

https://www.cnblogs.com/makai/p/10861296.html

B树(B-Tree)和B+树

B树

B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用着B树和B+树的数据结构

B数的时间复杂度是O(log[n]), 红黑二叉树的时间复杂度也是O(log[n]),所以B树的优势是比红黑树存储更多的节点

 

阶数:内部结点可以有的子结点的最大值

最小度数

 

三阶B树又称为——2-3树

四阶B树又称为——2-3-4树

 

性质

  1. 根节点至少有两个子节点
  2. 每个节点有M-1个key,并且以升序排列
  3. 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
  4. 其它节点至少有M/2个子节点

 

 

B+树

  1. 有k个子结点的结点必然有k个关键码
  2. 非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中
  3. 树的所有叶结点构成一个有序链表,可以按照关键码排序的次序遍历全部记录

比较:

B和B+树的区别在于,B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连,便于区间查找和遍历。

B+树更适合文件索引系统

 

  1. B+树单一结点存储的数据更多, 查询IO的次数更少
  2. B+树的查询都需要查找到叶子结点, 查询性能是稳定的, B树每个结点都可能查找到数据, 不稳定
  3. B+树遍历所有数据只需要遍历叶子结点组成的链表即可, 但是B树需要进行中序遍历

 

posted @ 2020-08-14 15:19  x_Aaron  阅读(256)  评论(0)    收藏  举报