B-Tree(平衡多路查找树)--I/O操作,提高查询效率
[key,data]-----key 键值 data 数据 不同数据,key值不同
特性:
1, 每个节点最多有m个孩子;
2,除了根节点和叶子结点外,其他每个节点至少有Ceil(m/2)个孩子;
3,若根节点不是叶子结点,则至少有两个孩子;
4,所有叶子结点都在同一层,且不包含其他关键信息;
5,每个非终端节点包含n个关键字信息(P0,P1,P2...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);
9,B-Tree 中的每个节点根据实际情况可以包含大量的关键字信息和分;
10,每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率;
11,B-tree对索引是顺序组织存储的,所很适合进行查找范围数据;
12,not in 和 <> 操作无法使用该索引;
ex