算法:B-树 B+树
2017-12-14 本文已影响5人
Caolongs
B-树特征:
一个m阶的B树具有以下特征:
- 根节点至少有两个子女
- 每个中间节点都包含k-1个元素和k个孩子(m/2 <= k <= m)
- 每一个叶子节点都包含k-1个元素(m/2 < k < m)
- 所有的叶子节点都位于同一层
- 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域划分
B-树应用
主要应用于文件系统及部分数据库索引,不如著名的非关系型数据库MongoDB
B-树
B+树特征:
- 有k个子树的中间节点包含k个元素(B书中是k-1个元素),每个元素不保存数
据,只用来索引,所有数据都保存在叶子节点中。 - 所有叶子节点中包含了全部元素的信息,及指向含这些元素的记录的指针,且叶
子节点本身依关键字的大小自小而大顺序链表。 - 所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。
B+树的优势:
- 单一节点存储更多的元素,使得查询的IO次数更少。
- 所有查询都要查找到叶子节点,查询性能稳定。
- 所有叶子节点形成有序链表,便于范围查找。