数据库原理之为什么要使用B+树,而不用二叉树呢?

目录

一、磁盘IO效率

二、范围查询效率

三、全表扫描

四、自增ID

一、磁盘IO效率

        B+树的非叶子节点不存储数据,只存储索引。所以树的每一层就能够存储更多的索引数量。也就是说,B+树在层高相同的情况下,比B树存储的数据更多,B+树的高度比二叉树低很多,间接会减少磁盘IO次数。

二、范围查询效率

        在MYSQL中,范围查询是一个比较常用的操作,而B+树的所有存储在叶子节点的数据使用了双向链表来关联,所以B+树在查询的时候只需查两个节点进行遍历就行了,而B树需要获取所有节点,因此,B+树在范围查询上效率更高。

三、全表扫描

        因为B+树的叶子节点存储所有数据,所以B+树全局扫描能力更强一点,因为它只需要扫描叶子节点,而B树需要遍历整个树。

四、自增ID

        基于B+树的这样的一种数据结构,如果采用自增的整型数据作为主键,还能更好的避免增加数据的时候,带来叶子节点分裂导致的大量运算的问题。

总结:B+树的优点是它所有数据都存储在叶子节点上,非叶子节点只存储索引,磁盘IO比较少,树比较矮,叶子节点中的数据使用双向链表进行关联。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值