简单数据库实现——Part7 - B树简介
对数据结构不太熟悉的话可以先补一下数据结构。
B树是sqlite用来表示表和索引的数据结构,此处只介绍数据结构,没有任何代码。
为什么树(tree)对数据库来说是一个好的数据结构?
- 可以很快的查询特定值(对数时间复杂度)
- 可以快速插入/删除已找到的数据(常数时间复杂度)
- 遍历一个区间的至很快(与hash map的不同)
B树不同于二叉树(B可能代表发明者的名字,但也可能代表平衡balanced)。这是一个b树的例子:
https://en.wikipedia.org/wiki/File:B-tree.svg
与二叉树不同,B树中的每个节点可以有两个以上的子节点。 每个节点最多可以有m个子节点,其中m被称为树的“order”。 为了使树保持平衡,节点还必须至少有 ⌈ m 2