数据库-3.3 优化你的索引-运用B树

B树的示意图如下:
在这里插入图片描述
B树,又叫平衡多路查找树。如果每个节点最多有m个孩子,那么这样的树就是m阶树,咱们可以看到,该图就是3阶B树的样子。当然现实中咱们索引每个节点的孩子数上限肯定是远大于3的。每个存储块中,主要包含了关键字和指向孩子的指针,那么最多能有几个孩子,取决于每个存储块的容量以及数据库的相关配置。所以,通常情况下,这个m是很大的。

接下来看看B-Tree的特征:
1,根节点至少包括两个孩子。
2,树中每个节点最多含有m个孩子(m>=2)
这个就是咱们说的m阶树的含义了,m取决于节点的容量,以及相关配置。
3,除根节点和叶节点外,其他每个节点至少有ceil(m/2)个孩子。
ceil函数表示取上限,比如这里的m为3,3除以2就是1.5,取上限就是2。
4,所有叶子节点都位于同一层,即叶子节点的高度都是一样的。
5,假设每个非终端结点含有n个关键字信息,其中
a)Ki(i=1…n)为关键字,且关键字按顺序升序排列K(i-1) <Ki
b)关键字的个数n必须满足:[ceil(m/2)-1] <= n <= m-1
c)非叶子结点的指针:P[1],P[2],…p[m];其中p[1]指向关键字小于k[1]的子树,p[m]指向关键字大于k[M-1]的子树,其它P[i]指向关键字属于(K[i-1],k[i])的子树。

B树的查找效率是O(logn)。
当数据发生变动的时候,必然会存在现有结构被打乱的情况,那我们的这个二叉查找树就有可能被打乱成线性的,当由于我们的B树会有这5个规定存在,所以B树就会有相应的策略,通过合并,分裂,上移,下移节点,来保持它的特征。此树远比我们的二叉树矮的多,并且不会经过数据不断变动之后变成线性的这种情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值