带您了解DB2索引结构 |
本文标签:DB2索引结构 DB2索引结构是怎样的呢?这是很多人都提到过的问题,下面就为您详细介绍DB2索引结构,希望可以让您对DB2索引结构有更深的认识 。 DB2索引结构 在DB2中,索引的数据结构是一颗B+树 。B树把它的存储块组织成一棵树 。这棵树是平衡的,即从树根到树叶的所有路径都一样长 。通常B树有三层:根、中间层和叶,但也可以是任意多层 。
典型的B+树结构:
根结点中至少有两个指针被使用 。所有指针指向位于B树下一层的存储块;
叶结点中,最后一个指针指向它右边的下一个叶结点存储块,即指向下一个键值大于它的块 。在叶块的其他n个指针当中,至少有个指针被使用且指向数据记录;未使用的指针可看作空指针且不指向任何地方 。如果第i个指数被使用,则指向具有第i个键值的记录;
在内层结点中,所有的n+ 1个指针都可以用来指向B树中下一层的块 。其中至少
个指针被实际使用(但如果是根结点,则不管n多大都只要求至少两个指针被使用) 。如果j个指针被使用,那该块中将有j-1个键,设为K1,K2⋯⋯,Kj - 1 。第一个指针指向B树的一部分,一些键值小于K1的记录可在这一部分找到 。第二个指针指向B树的另一部分,所有键值大小等于K1且小于K2的记录可在这一部分中 。依此类推 。最后,第j个指针指向B树的又一部分,一些键值大于等于Kj - 1的记录可以在这一部分中找到 。注意:某些键值远小于K1或远大于Kj - 1的记录可能根本无法通过该块到达,但可通过同一层的其他块到达 。
假若我们以常规的画树方式来画B树,任一给定结点的子结点按从左(第一个子结点)到右(最后一个子结点)的顺序排列 。那么,我们在任何一个层次上从左到右来看B树的结点,结点的键值将按非减的顺序出现 。
![]() DB2中索引结构 标准表的表和索引管理
![]() 记录表示和数据页
![]() 在DB2中可使用命令db2dart
|