2008年(239)
分类: Oracle
2008-06-17 23:58:33
用户不能使用SQL语句直接访问索引,直接增加、修改、删除索引中的记录。对索引的访问和维护,由数据库系统自动完成,系统根据用户对表的更新操作更新索引中记录。
用户访问带索引的表时,将由系统决定是使用索引访问,还是使用表扫描。索引中记录存贮在索引页上,索引页使用的磁盘空间在需要时分配。索引记录中包含键值和指针。键值就是创建索引所使用取值字段的,整个索引中的记录就按照键值被排序存放;指针指向下一级的索引页或者表的数据页,索引中的所有索引页就通过指针连接起来。
B树索引是数据库中应用最广泛的索引方式,它采用平衡树结构,每个叶结点到根的路径长度相同。下面我们就以B树为例,说明索引的结构(如图4-3)。
一个索引中的数据页可以分为:根页(root page)、叶页(leaf page)、分支页(branch page)。
根页是整个索引中的最高一级,一个索引只能有一个根页。如果索引很小,所有的记录可以存放在一个索引页中,那么该索引没有叶页和分支页,根页中就存储着指向数据页的记录号。
叶页是索引的最低一级,包含表中每一记录的键值及记录号,记录以键值的排列顺序存储。系统通过索引访问表中记录,就是根据键值找到键值所在的叶页以及对应的索引记录,然后使用索引记录中的记录号,找到表中记录的位置。
根页和叶页之间的所有索引页称为分支页。分支页中的每一条记录都指向下一级的分支页或者叶页,一个大型表上的索引可能需要许多分支页。