DB2 V9.7 for Linux, UNIX, and Windows

索引

索引是一组按一个或多个键的值以逻辑方式进行排序的指针。这些指针可以引用表中的行、MDC 表中的块以及 XML 存储器对象中的 XML 数据等等。

索引用于:

对表添加数据时,该数据将被追加到底部(除非已对该表和正在添加的数据执行了其他操作)。不存在固有的数据顺序。搜索特定数据行时,必须检查从第一行到最后一行的每个表行。将索引用作按顺序访问表中的数据的一种方法,该顺序在其他情况下可能不可用。

通常,在表中搜索数据时,您将查找列具有特定值的行。可以使用数据行中的列值来标识整个行。例如,职员编号可能唯一地定义特定的职员。另外,也可能需要多个列才能标识一行。例如,客户名称与电话号码的组合。索引中用于标识数据行的列称为。一个列可以在多个键中使用。

索引按键中的值进行排序。键可以是唯一的,也可以是非唯一的。每个表应该至少有一个唯一键;但还可以有其他非唯一键。每个索引正好有一个键。例如,可以使用职员标识编号(唯一)作为一个索引的键,并使用部门号(非唯一)作为另一个索引的键。

并不是所有索引都指向表中的行。MDC 块索引就指向数据的扩展数据块(或块)。XML 数据的 XML 索引使用特定的 XML 模式表达式来为存储在单个列中的 XML 文档中的路径和值建立索引。该列的数据类型必须是 XML。MDC 块索引和 XML 索引都是由系统生成的索引。

示例

图 1 中,表 A 的一个索引基于表中的职员编号。此键值提供指向表行的指针。例如,职员编号 19 指向职员 KMP。索引允许通过指针创建指向数据的路径有效地访问表中的各行。

可创建唯一索引以确保索引键的唯一性。索引键是定义了 索引的一个列或一些列的有序集合。使用唯一索引将确保在编入索引的列中,每个索引键 的值都是唯一的。

图 1 显示了索引与表之间的关系。

图 1. 索引与表之间的关系
此图显示了索引与表之间的关系。

图 2 说明一些数据库对象之间的关系。它还显示了表、索引和长型数据存储在表空间中的情况。

图 2. 所选择的数据库对象之间的关系
此图显示了数据库对象之间的关系。