索引分爲聚簇索引 和非聚簇索引,聚簇索引也叫主索引它對錶的物理數據頁中的數據按索引列進行排序,然後重新存儲到磁盤上,它的葉節點中存儲的就是實際數據,一個表只能有一個聚簇索引。非聚簇索引也叫輔助索引,它具有和表的數據完全分離的結構,非聚簇索引的頁節點存儲了組成非聚簇索引的關鍵字的值以及行定位器
數據庫常用的索引: B樹索引,哈希索引
數據倉庫常用索引: 位圖索引,連接索引,位圖連接索引
位圖索引(bitmap) :
位圖索引的引入是爲了解決B樹索引遇到的鍵值重複較多導致的效率低下的問題,它的索引數據的方式和B數索引完全不同。
B樹索引每個索引鍵存儲一個行號(rowid),通過這個行號找到相應的記錄。但是位圖索引的每個鍵值會存儲指向很多行的指針。
這個存儲特性決定了位圖索引非常適合對索引字段的count操作,以及索引字段之間的and or 操作
比如,一個員工表job裏有‘職位’這麼個字段,它包含值: 普通員工,經理,主任,助理4個職位,形成的位圖索引會如下圖:
普通員工 0100010001001
經理 1000001000000
主任 0000000010000
助理 0011100100110
哪一位上有1 ,對應的這條記錄上此字段是這個取值。