带您了解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 /di /tsi /oi /ps p /np 1 /v y来查看索引的物理结构以增加对索引的理解  。