B+ Tree Structure
来源:互联网 发布:人工智能书籍推荐 编辑:程序博客网 时间:2024/05/22 11:33
B+树的组织结构
1、B+树索引的总体结构
① B+树索引是一个多级索引,但是其结构不同于多级顺序索引;
② B+树索引采用平衡树结构,即每个叶结点到根的路径长度都相同;
③ 每个非叶结点有到n个子女,n对特定的树是固定的;
④ B+树的所有结点结构都相同,它最多包含n-1个搜索码值K1、K2、…、Kn-1,以及n个指针P1、P2、…、Pn,每个结点中的搜索码值按次序存放,即如果i<j,那么Ki<Kj,如图8-3-1所示
图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+树索引的叶结点结构示例
① B+树索引的非叶结点形成叶结点上的一个多级(稀疏)索引;
② 非叶结点的结构和叶结点的结构相同,即含有能够存储n-1个搜索码值和n个指针的存储单元的数据结构。只不过非叶结点中的所有指针都指向树中的结点;
③ 如果一个非叶结点有m个指针,则≤m≤n。若m<n,则非叶结点中指针Pm之后的所有空闲空间作为预留空间,与叶结点的区别在于结点的最后一个指针Pm和Pn的位置与指向不同,如图8-3-3所示;
图8-3-3:B+树索引的非叶结点结构
图8-3-4:B+树索引的非叶结点中指针Pi的指向
① 根结点的结构也与叶结点相同;
② 根结点包含的指针数可以小于。但是,除非整棵树只有一个结点,否则根结点必须至少包含两个指针。图8-3-5给出一个B+树结构的示意图。
图8-3-5:account关系的B+树索引结构
- B+ Tree Structure
- Tree structure
- Advantages of B-tree Structure【每日一译】--20121219
- Data Structure: Tree
- Android source tree structure
- data structure -- tree
- Data Structure:Binary Tree
- Basic Tree--Data Structure
- AVL tree--Data Structure
- Data Structure -Tree
- Data structure of tree
- B-tree、B+tree
- B-Tree/B+Tree
- B-tree B+tree
- B-tree&B+tree
- pyTree(tree structure in python )
- Data Structure: Binary Index Tree
- Binary Search Tree--Data Structure
- 学习
- orcale分组函数
- 学习C++程序的50条建议
- 关于矩阵的一些操作(求转置矩阵、行列式、矩阵的秩、矩阵的逆矩阵、两个矩阵的乘积矩阵)
- 在已经做好的MFC项目中添加一个登陆界面
- B+ Tree Structure
- 特权级1——RPL、DPL、CPL .
- Unix操作系统基础:Unix通信
- vi/vim文件打开时显示正在打开文件名称的方法
- android Launcher——数据加载与变更
- 利用memcached构建高性能的Web应用程序
- Linux下的常用命令
- oracle单行函数详解
- iOS应用开发——ARC