数据库索引 - B树索引

B树索引能自动的保持和数据文件大小相适应的索引层次。通过对所使用的存储块空间进行管理,使每个块的充满程度在半满和全满之间。这样的索引不再需要溢出块。

B(+)树的数据结构:
通常B树有三层:跟、中间层和叶。
叶子节点是一个块,它存储了N个[键值,数据记录指针]对,外加一个指向下一个兄弟叶子节点的指针。叶子节点中的键值是稠密的。
中间层节点是一个块,它存储了M个[键值,指向自己子节点]对。中间层节点中的键值是稀疏的。
根节点是一个块,储存了I个键值,指向中间层节点]对。根节点中的键值是稀疏的。

B树的查找效率分析:
一个块中可以存储很多个[键值,指针]对,因此,三层的B树可以支持千万记录级别的数据表。
在这样的树中,精确查找一个数据记录指针只需要两次I/O。
树的叶子节点之间实际上组成了一个单向链表。通过扫描链表,可以实现范围查找。

B树的更新效率分析:
通过增加/删除叶子节点及其相互的引用指针,单向链表的数据结构高效的支持数据的插入和删除。当然,必要的时候需要更新中间节点。

    原文作者:B树
    原文地址: https://blog.csdn.net/alvanchen/article/details/5749807
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞