一 概述:
(1)功能:建立索引是加快查询速度的有效手段。用户可以根据应用环境需要,在基本表上建立一个或多个索引,提供多种存取路径,加快查找速度。
(2)索引类型(两种):
*顺序索引:包括聚集索引与非聚集索引。
*散列索引。
*没有那种技术最好,只有说某种技术对特定的数据库最合适。
(3)索引特点:
*索引的创建和删除一般由DBA或表的属主负责完成。
*系统在存取数据时会自动选择合适的索引作为存取路径,用户不能也不必显式的选择索引。
*通常需要在一个文件上创建多个索引(只能创建一个聚集索引)。例如,可能按作者、主题等。
*每个索引与一个特定的搜索码(用来在文件中查找记录的属性或属性集)相关联。
*DBMS中索引一般采用B+树(大多数)、Hash索引实现。
*用户创建索引时,可以定义索引为唯一索引,非唯一索引或聚集索引。至于某一个索引是采用B+树,还是HASH索引则由具体的DBMS来决定。
二 聚集索引与非聚集索引:
(1)聚集索引(clustering index):包含记录的文件按照某个搜索码的指定的顺序排序,即索引项的顺序与表中记录的物理顺序一致。
(2)非聚集索引:搜索码指定的顺序与文件中记录的顺序不同。
(3)注意:
*在一个基本表上只能建立一个聚集索引。建立聚集索引后,更新该索引列上的数据,往往导致该表中记录的物理顺序表更,代价较大,因此,对于经常更新的列不宜建立聚集索引。
*注意不同DBMS的索引创建方法不一样。
三 顺序索引(按顺序存储搜索码的值,并将每个搜索码与包含该搜索码的记录关联起来):
(1)索引项:由一个搜索码值和指向具有搜索码值的一条或者多条记录的指针组成。
(2)顺序索引分为两类:
*稠密索引(dense index):文件中的每个搜素码值都有一个索引项。
~稠密聚集索引中:索引项包括搜索码值以及指向具有该搜索码值的第一条数据记录的指针。
~稠密非聚集索引中:索引必须存储指向索引具有相同搜索码值的记录的指针列表。
*稀疏索引(sparse index):值为搜索码的某些值建立索引项。
~只有当关系按搜索码顺序存储时才使用稀疏索引,即只有聚集索引才使用稀疏索引。
四 索引的优缺点:
待续...