B树面试相关知识

数据库索引的实现通常使用B树及其变种B+树,下面进行B-/+Tree结构的数据库索引的性能分析:

(1)B树索引结构:
数据库系统的设计者巧妙利用了磁盘预读原理,将B树的一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。为了达到这个目的,在实际实现B-Tree还需要使用如下技巧:

每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页;B-Tree中一次检索最多需要h-1次I/O
(磁盘IO不包括根节点,因为根节点常驻内存),渐进复杂度为O(h)=O(logdN)。一般实际应用中,出度d是非常大的数字,通
常超过100,因此h非常小(通常不超过3)。而红黑树这种结构,h明显要深的多。由于逻辑上很近的节点(父子)物理上可能
很远,无法利用局部性,所以红黑树的I/O渐进复杂度也为O(h),效率明显比B-Tree差很多。所以,B树结构的数据库索引,在
元素查找上效率很高;

(2)B+树的索引结构:

B+树则适当牺牲检索的时间复杂度(都必须检索到叶子结点),但改善了节点插入和删除的时间复杂度(类似用链表改善数组的
效果),所以B+树属于一种折中选择。

https://blog.csdn.net/Xiongchao99/article/details/73381280参考学习网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N1314N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值