B树和B+树的区别

B树

概念了解

  1. 节点的度:一个节点拥有的子树数的数目称为节点的度。
  2. 叶子节点:度为0的节点,称为叶子节点。
  3. 非叶子节点:叶子节点找出来之后其他的都是非叶子节点。

   B树是一颗完全平衡的树,指的是每个叶子节点在排序上都是递增的,因为采用分裂和合并的方式来建树,所以在如果数据是经常变化的数据不建议建立主键,因为建树所需的时间较长。

  B树和B+树都是树的一种,其中的数据就保存在节点data中,并且节点之间是没有指针相互连接的。

下图所示B-树:
在这里插入图片描述

B+树

  B+树是在B树的基础上进行了优化,将B树的阶段中的值移到B+树的叶子节点中建立的非叶子节点起的是索引的作用(冗余索引),在数据库操作中这些冗余的索引会被直接加载到内存中进行处理,对应的叶子节点需要占用的内存空间较大,保存在外存中,这样能够保证在树的同一层中能够有更多的索引,能够减少树的层次。

  • mysql数据库默认的存储引擎是Innodb,采用的数据结构是B+树。
    在这里插入图片描述

B树和B+树的区别以及B+树的优点:

  1. B树是没有区间指针的,所以无法进行范围查询,B+树支持范围查询。
  2. 相同的数据元素的个数,B+树的层次更低,树的高度越小查找的效率越高。
  3. B+树的IO利用率较高,B树的节点处的数据所占用的内存较小,但是会占操作系统的一页。

B+树的优点:

  • B+树是B树的plus版本
  • IO的效率高于B树
  • 基于索引的表扫描性能高于B树
  • 排序能力更强于B树
  • 基于索引的查询B+树更加稳定
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值