mysql 节点查根_(三)B数、B+树及在数据库索引中应用

在算法逻辑上,二叉树的查找效率和比较次数都是最小的,但是在实际问题中,还要考虑磁盘IO.

数据库索引是存储在磁盘上的,当数据量比较大时,索引可能几个G。

当我们利用索引查询的时候,不能将整个索引全部加载到内存中,能做的只能是逐一加载每一个磁盘页,这里的磁盘页对应索引树的节点。

5c294aa42806b015674acc9209fd2d8e.png

二叉查找数、平衡二叉树、红黑树是典型的二叉查找数结构,其查找的时间复杂度为O(log2N)与树的深度有关,所以降低树的深度自然能提高查找效率。

在实际场景中:大规模数据存储中,实现索引查询这样一个实际场景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,查找退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而降低查询效率低下,所以就思考如何降低树的深度(当然不能减少查询的数据量),一个基本的想法是:采用多叉树结构

B树和B+树是平衡的多路查找树

一、B树

简单来说:B树是一种多路平衡查找树,它的每一个节点最多包含k个孩子,k也称为阶树。

k的大小取决于磁盘页的大小

概念:B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值