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参考学习网

你可能感兴趣的:(B树面试相关知识)