稀疏索引
索引項中只對應主文件中的部分記錄,即不會給每條記錄建立索引。
稀疏索引要求索引字段選自於主文件中的有序屬性(即屬性值是按照遞增排序的),如上圖所示,索引字段選自於公寓名稱,而公寓名稱是按照字母進行排序的。
查詢方式
如果要查找某條記錄K,先從索引表找,如果未找到,則找相鄰的小於K的最大索引字段值對應的索引項,然后從該索引項對應的記錄開始順序進行Table檢索。拿上圖來說,我們要找Donwtown所在的記錄,但是在索引表中未找到對應的索引項,那么我們已知比Downtown小的是Brighton,我們可以從Brighton對應的記錄開始查詢,這樣就提高了查詢效率。
稠密索引
對於主文件中每一條記錄都有索引項與之對應,因此有可能一個索引項會對應多個記錄。
稠密索引分為以下三種:
候選鍵屬性的稠密索引
因為使用候選鍵作為索引字段,所以稠密索引很好建立
屬性值可重復的稠密索引
- 第一種是要求索引字段值不能重復,主文件記錄按搜索碼排序
由於索引字段值不能重復,但選取的屬性可重復取相同的值,所以要求主文件中的記錄需要排序。當我們從索引中找到對應的記錄后,再從主文件中按順序查找,就可以找到想要的記錄了。
- 第二種是要求搜索字段不能重復,主文件記錄無序
如同所示引入指針桶,先通過索引找到對應的指針桶,然后從指針桶找對應的記錄。