B-tree 可以拥有2个以上的节点,是一棵多路平衡查找树。广泛应用于数据库索引和文件系统中。
定义
B-tree结构的数据可以让系统快速定位到数据所在的磁盘块
为了描述B-tree 首先定义一条数据为一个元组[key,data] ,key为记录的键值 对应表中的主键值 data为一行记录中除主键值之外的其他数据 。对于不同的记录 key值不同
一个m阶B-tree 有如下特性:
1.每个节点最多有m个子节点
2.除了根节点和叶子节点之外 其他每个节点至少有m/2个子节点
3.若根节点不是叶子节点 则至少有2个子节点
5. 每个非终端节点包含n个关键字信息(P0,P1,…Pn, k1,…kn)
6. 关键字的个数n满足:ceil(m/2)-1 <= n <= m-1
7. ki(i=1,…n)为关键字,且关键字升序排序。
8. Pi(i=1,…n)为指向子树根节点的指针。P(i-1)指向的子树的所有节点关键字均小于ki,但都大于k(i-1)
如上图所示,每个节点占用一个盘块的磁盘空间,一个节点上有两个升序排序的关键字和三个指向子树根节点的指针,指针存储的是子节点所在磁盘块的地址。两个关键词划分成的三个范围域对应三个指针指向的子树的数据的范围域。以根节点为例