資料庫索引演算法的優缺點

2021-08-14 12:33:04 字數 848 閱讀 1256

當前測試的版本是mysql 5.5.25只有btree和hash兩種索引型別,預設為btree。oracle或其他型別資料庫中會有bitmap索引(位圖索引),這裡作為比較也一起提供。

btree索引

btree(多路搜尋樹,並不是二叉的)是一種常見的資料結構。使用btree結構可以顯著減少定位記錄時所經歷的中間過程,從而加快訪問速度。按照翻譯,b 通常認為是balance的簡稱。這個資料結構一般用於資料庫的索引,綜合效率較高。邏輯結構為一顆n叉平衡樹,每列中distinct  key 都對應乙個 rids(row identifiers)陣列。樹狀結構適合頻繁的更新操作,適用於事物型資料庫。

不適合:

hash雜湊索引

hash雜湊索引是根據hash演算法來構建的索引。雖然 hash 索引效率高,但是 hash 索引本身由於其特殊性也帶來了很多限制和弊端,主要有以下這些。

適合:

不適合:

bitmap點陣圖索引

就是用位圖表示的索引,對列的每個鍵值建立乙個位圖,即每列中的distinct key都對應一bit序列。相對於btree索引,占用的空間非常小,建立和使用非常快。位圖索引由於只儲存鍵值的起止rowid和點陣圖,占用的空間非常少。

下圖是點陣圖索引的乙個直觀描述。其中,identifier列是每一行的唯一標識,hasinternet是索引列,那麼右側的bitmaps下方的兩列y和n則表示左側所對應的bitmap索引。 

不適合

資料庫索引優缺點

建立索引的優點 建立索引可以大大提高系統效能!具體如下 1.通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。2.可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。3.可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。4.在使用分組和排序子句進行資料檢索時,同樣可...

資料庫索引優缺點

建立索引可以大大提高系統的效能 第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行資料檢索時,同樣可以顯著減少查詢...

資料庫索引的優缺點

建立索引可以大大提高系統的效能 第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行 資料檢索 時,同樣可以顯著減少...