分类:
2009-03-18 16:05:15
1、B+树索引的总体结构 |
图8-3-1:B+树的结点结构 |
2、B+树索引的叶结点 ① 指针Pi(i=1,2,…,n-1)指向具有搜索码值Ki的一个文件记录或一个指针(存储)桶,桶中的每个指针指向具有搜索码值Ki的一个文件记录。指针桶只在文件不按搜索码顺序物理存储时才使用。指针Pn具有特殊的作用; ② 每个叶结点最多可有n-1个搜索码值,最少也要有个搜索码值。各个叶结点中搜索码值的范围互不相交。要使B+树索引成为稠密索引,数据文件中的各搜索码值都必须出现在某个叶结点中且只能出现一次; ③ 由于各叶结点按照所含的搜索码值有一个线性顺序,所以就可以利用各个叶结点的指针Pn将叶结点按搜索码顺序链接在一起。这种排序能够高效地对文件进行顺序处理,而B+树索引的其他结构能够高效地对文件进行随机处理,如图8-3-2所示。 |
图8-3-2:B+树索引的叶结点结构示例 |
3、B+树索引的非叶结点 ① B+树索引的非叶结点形成叶结点上的一个多级(稀疏)索引; ② 非叶结点的结构和叶结点的结构相同,即含有能够存储n-1个搜索码值和n个指针的存储单元的数据结构。只不过非叶结点中的所有指针都指向树中的结点; ③ 如果一个非叶结点有m个指针,则≤m≤n。若m |
图8-3-3:B+树索引的非叶结点结构 |
④ 在一个含有m个指针的非叶结点中,指针Pi(i=2,…,m-1)指向一棵子树,该子树的所有结点的搜索码值大于等于Ki-1而小于Ki。指针Pm指向子树中所含搜索码值大于等于Km-1的那一部分,而指针P1指向子树中所含搜索码值小于K1的那一部分,如图8-3-4所示。 |
图8-3-4:B+树索引的非叶结点中指针Pi的指向 |
4、B+树索引的根结点 ① 根结点的结构也与叶结点相同; ② 根结点包含的指针数可以小于。但是,除非整棵树只有一个结点,否则根结点必须至少包含两个指针。图8-3-5给出一个B+树结构的示意图。 |
图8-3-5:account关系的B+树索引结构 |