|
图8-2-1:索引顺序文件的结构
|
�1、顺序索引的分类
��顺序索引有两类:分别是稠密索引和稀疏索引。
��⑴�稠密索引:对应文件中搜索码的每一个值都有一个索引记录(或索引项)。索引记录包括搜索码值和指向具有该搜索码值的第一个数据记录的指针,如图8-2-2所示。
|
图8-2-2:稠密索引
|
��⑵�稀疏索引:与稠密索引相反,稀疏索引只为搜索码的某些值建立索引记录。但和稠密索引一样,每个索引记录也包括搜索码值和指向具有该搜索码值的第一个数据记录的指针,如图8-2-3所示。
|
图8-2-3:稀疏索引结构
|
��与稠密索引的每一个搜索码都有一个索引记录不同,稀疏索引只为部分搜索码建立了索引项。如果我们根据搜索码查找数据文件中的记录,而这个搜索码恰恰没有在稀疏索引的索引记录中,那么我们如何利用该稀疏索引进行查询呢?这个问题请大家参考图8-2-3,以查找银行分支机构名称为Perryridge的记录为例,说明如何利用稀疏索引进行查询。
��2、顺序索引的比较与建立
��除了我们上面讲到的稠密索引和稀疏索引的不同之处以外,利用稠密索引通常可以比稀疏索引能够更快地定位一个记录的位置;再一点,与稠密索引相比,稀疏索引占用空间较小,插入和删除时维护的开销也小。
��那么在实践当中如何正确地建立稀疏索引呢?因为处理数据库查询的开销主要是由把数据块从磁盘上取到主存的时间来决定。一旦将数据块放入主存,扫描整个数据块的时间是可以忽略的。因此可以考虑为每个块建一个索引项的稀疏索引,使用这样的稀疏索引,可以定位包含所要查找记录的块。 |