B树
AVL 树 和红黑树,都假设所有的数据放在主存当中。而当数据量达到亿级,主存当中根本存储不下,我们只能以块的形式从磁盘读取数据,与主存的访问时间相比,磁盘的 I/O 操作相当耗时,而提出 B-树的主要目的就是减少磁盘的 I/O 操作。
B树的一个节点 x x x如果包含 n n n个 k e y key key,则其有 n + 1 n+1 n+1个孩子。( n n n个key将其余数据划分为 n + 1 n+1 n+1个区间,每个孩子介于相应的区间中)
性质
B树所具有的的性质人如下:
- 每个节点 x x x应具有如下属性:
- x . n x.n x.n即,存储在 x x x节点的 k e y key key个数
- 节点 x x x的n个key以非降序排列。 x . k e y 1 ≤ x . k e y 2 ≤ ⋯ ≤ x . k e y x . n x.key_1 \le x.key_2 \le \cdots \le x.key_{x.n} x.key1≤x.key2≤⋯