1. 程式人生 > >修煉內功---資料結構與演算法18---稠密索引

修煉內功---資料結構與演算法18---稠密索引

前面我們提到的二分查詢適用於有序線性表的查詢
此外針對二分查詢還有升級版的插值查詢
不過一般我們使用二分查詢就可以了

二分查詢不適用於高速增長的海量資料
因為維護這個排序非常麻煩
所以我們引出索引這種資料結構

索引是為了加快查詢速度而設計的一種資料結構
索引就是把一個關鍵字與它對應的記錄相關聯的過程
一個索引由若干索引項構成
每個索引項至少包含關鍵字和其對應記錄在儲存器中的位置等資訊

索引技術是組織大型資料庫和磁碟檔案的一種重要技術

索引技術分為線性索引、樹形索引和多級索引
這裡我們只介紹線性索引
所謂線性索引就是將索引項集合組織為線性結構,也稱索引表

 

 

線上性索引中,我們重點介紹三種:稠密索引、分塊索引和倒排索引

首先是稠密索引
稠密索引是指線上性表中,將資料集中的每個記錄對應一個索引項,就像我們上面示例圖中的那樣。以主鍵為例,可以將其抽象化如下

 

對於稠密索引這個索引表來說
索引項一定按照關鍵碼有序排列,這樣可以應用二分查詢,以免索引查詢本身影響效能。
可見,稠密索引效能可以做到和二分查詢相當(找到對應關鍵碼就可以通過指標直接指向對應記錄),
但是索引項長度和資料集一樣長,空間複雜度高,如果資料太多需要存放到磁碟上,反覆讀取磁碟對效能影響很大。

因此,我們又引入了分塊索引