索引是一种工具书,它将文献中具有检索意义的事项,如人名、地名、词语、概念或其它事项,按照一定的方式有序编排,供读者检索。在编程领域,索引则用于数据库表中,对一列或多列的值进行排序,以加速数据检索。例如,在员工表(employee)中,按照姓(lname)列创建索引后,查询特定职员信息将更快。索引实质上是数据库表中指定列的值的指针,按照您指定的排序顺序进行排序。数据库中的索引功能类似于书籍中的索引,用户可以通过索引快速找到特定值,然后顺着指针找到包含该值的行。在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表或保存该表所在的关系图时,索引将保存在数据库中。需要注意的是,并非所有数据库都以相同的方式使用索引。只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且会降低添加、删除和更新行的速度。然而,在多数情况下,索引用于数据检索的速度优势大大超过了它的不足之处。如果应用程序非常频繁地更新数据或磁盘空间有限,则可能需要限制索引的数量。索引可以基于数据库表中的单列或多列创建。多列索引有助于区分其中一列可能具有相同值的行。如果经常同时搜索两列或多列,或按两列或多列排序,那么在这些列上创建多列索引将非常有帮助。例如,如果经常在同一查询中为姓和名两列设置条件,那么在这两列上创建多列索引将很有意义。确定索引的有效性需要考虑几个方面。首先,检查查询的WHERE和JOIN子句,子句中包括的每一列都是索引可以选择的对象。其次,对新索引进行试验,以检查它对运行查询性能的影响。考虑已在表上创建的索引数量,避免在单个表上创建过多索引。检查已在表上创建的索引的定义,避免包含共享列的重叠索引。最后,检查某列中唯一数据值的数量,将其与表中的行数进行比较,以确定该列是否适合建立索引,以及索引的类型。在出版术语中,索引被称为索隐,它将图书或报刊中的字、词、句、人名、地名、书名、主题等著录成简括的条目,注明其出处和卷次页码,按一定的检索方法编排成册。利用索引,从大部头的书中查找一名一事,或在成千上万种报刊中寻找某个专题的资料,将大大节约时间,有助于了解学术发展动向。索引分为两类,一类是按字母顺序编排的索引,另一类是按主题或关键词编排的索引。前者适用于需要按字母顺序查找内容的情况,后者则适用于按主题或关键词进行检索。索引不仅方便读者查阅,也提高了文献利用的效率。