索引的出現是為了提高查詢效率,但是實現索引的方式卻有很多種,所以這裡也就引入了索引模型的概念。可以用於提高讀寫效率的資料結構很多,三種常見、也比較簡單的資料結構,它們分別是雜湊表、有序陣列和搜尋樹。
雜湊索引
雜湊表是一種以鍵 - 值(key-value)儲存資料的結構,我們只要輸入待查詢的鍵即 key,就可以找到其對應的值即 Value。雜湊的思路很簡單,把值放在陣列裡,用一個雜湊函式把 key 換算成一個確定的位置,然後把 value 放在陣列的這個位置。不可避免地,多個 key 值經過雜湊函式的換算,會出現同一個值的情況。處理這種情況的一種方法是,拉出一個連結串列。
雜湊表這種結構適用於只有等值查詢的場景,比如 Memcached 及其他一些 NoSQL 引擎。
搜尋樹(tree)
樹的查詢效率與樹的高度相關
靜態陣列
有序陣列在等值查詢和範圍查詢場景中的效能就都非常優秀。如果僅僅看查詢效率,有序陣列就是最好的資料結構了。但是,在需要更新資料的時候就麻煩了,你往中間插入一個記錄就必須得挪動後面所有的記錄,成本太高。所以,有序陣列索引只適用於靜態儲存引擎
本作品採用《CC 協議》,轉載必須註明作者和本文連結