B-Tree就是B树,"-"是横杠,不读作"减"
(1)树中每个结点至多有m 棵子树(注:m指的是树的阶);
(2)若根结点不是叶子结点,则至少有两棵子树(注:根节点至少有两个儿子);
(3)除根结点之外的所有非叶子结点至少有p个子节点(, 为向上取整。);
(4)所有的非叶子结点中包含以下数据:(n,P0,K1,P1,K2,…,Kn,Pn); K是Key, P是指针
B+Tree的非底层节点是不包含具体Value数据的;B-Tree的所有节点都含Value数据;
B+Tree最底层节点是完整的全量数据,可按顺序遍历;B-Tree最底层节点的数据是不完整的;
B+Tree可以把只把Key索引放在上层(内存可缓存下更多的索引);B-Tree把数据也放在上层了,数据夹杂索引的方式;
度是M(即节点大小约为M),底层节点个数是N,问查询复杂度: 注意:此N时底层节点个数,不是元素个数(元素个数时N*M)
聚集索引和非聚集索引
都是B+Tree;
非聚集索引的"数据域"放的是指向数据的指针;聚集索引的“数据域”放的是具体数据(建表之前就要指定主键);