数据结构之B+树

B+树也是B树的一种,也是多叉树。

相同点:

  1. 根结点的至少有1个元素
  2. 每个结点元素数:m/2 <= k <= m-1    /**  m是树的深度  **/

不同点:

  1. B+树有三种结点:根结点 内部结点 叶子结点
  2.  内部结点存储索引,不存储数据。
  3.  叶子结点存储数据
  4. 内部结点中的key都按照从小到大的顺序排列,对于内部结点中的一个key,左树中的所有key都小于它,右子树中的key都大于等于它。叶子结点中的记录也按照key的大小排列。
  5. 每个叶子结点都存有相邻叶子结点的指针,叶子结点本身依关键字的大小自小而大顺序链接。   

  B+树图解:

    

 

补充:在数据库中如果B+树叶子结点里面存放的数据是真实数据,则称为聚集索引

           如果B+树叶子结点里面存放的是指向真实数据的另一个索引,则称为非聚集索引。

           聚集索引是进行一次索引,非聚集索引是进行两次索引。

 

B树和B+树总结

B+树相对于B树有一些自己的优势,可以归结为下面几点。

  • 单一节点存储的元素更多,使得查询的IO次数更少,三层高度可以存放百万数据。所以也就使得它更适合做为数据库MySQL的底层数据结构了。
  • 所有的查询都要查找到叶子节点,查询性能是稳定的,而B树,每个节点都可以查找到数据,所以不稳定。
  • 所有的叶子节点形成了一个有序链表,更加便于查找。

 

 

                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值