各種Oracle索引型別介紹

2021-09-07 10:15:18 字數 1430 閱讀 4610

邏輯上:

single column 單行索引

concatenated 多行索引

unique 唯一索引

nonunique 非唯一索引

function-based函式索引

domain 域索引

物理上:

partitioned 分割槽索引

nonpartitioned 非分割槽索引

b-tree:

normal 正常型b樹

rever key 反轉型b樹

bitmap 位圖索引

索引結構:

b-tree:

適合與大量的增、刪、改(oltp);

不能用包含or操作符的查詢;

適合高基數的列(唯一值多)

典型的樹狀結構;

每個結點都是資料塊;

大多都是物理上一層、兩層或三層不定,邏輯上三層;

葉子塊資料是排序的,從左向右遞增;

在分支塊和根塊中放的是索引的範圍;

bitmap:

適合與決策支援系統;

做update代價非常高;

非常適合or操作符的查詢;

基數比較少的時候才能建位圖索引;

樹型結構:

索引頭

開始rowid,結束rowid(先列出索引的最大範圍)

bitmap

每乙個bit對應著乙個rowid,它的值是1還是0,如果是1,表示著bit對應的rowid有值

1. b-tree索引

oracle資料庫中最常見的索引型別是b-tree索引,也就是b-樹索引,以其同名的計算科學結構命名。create

index語句時,預設就是在建立b-tree索引。沒有特別規定可用於任何情況。

2. 位圖索引(bitmap index)

位圖索引特定於該列只有幾個列舉值的情況,比如性別字段,標示字段比如只有0和1的情況。

3. 基於函式的索引

比如經常對某個欄位做查詢的時候是帶函式操作的,那麼此時建乙個函式索引就有價值了。

4. 分割槽索引和全域性索引

這2個是用於分割槽表的時候。前者是分區內索引,後者是全表索引

5. 反向索引(reverse)

這個索引不常見,但是特定情況特別有效,比如乙個varchar(5)位欄位(員工編號)含值

(10001,10002,10033,10005,10016..)

這種情況預設索引分布過於密集,不能利用好伺服器的並行

但是反向之後10001,20001,33001,50001,61001就有了乙個很好的分布,能高效的利用好並行運算。

6.hash索引

hash索引可能是訪問資料庫中資料的最快方法,但它也有自身的缺點。集群鍵上不同值的數目必須在建立hash集群之前就要知道。需要在建立hash集群的時候指定這個值。使用hash索引必須要使用hash集群。

各種Oracle索引型別介紹

邏輯上 single column 單行索引 concatenated 多行索引 unique 唯一索引 nonunique 非唯一索引 function based函式索引 domain 域索引 物理上 partitioned 分割槽索引 nonpartitioned 非分割槽索引 b tree ...

oracle的各種索引介紹

索引 最常用的索引包括 b 樹索引 位圖索引 位圖聯合索引 基於函式索引 應用域索引 1 b 書索引 實現快速定位,資料庫會根據所索引的列來建立索引,如果該列是唯一的就將該列進行排序,然後建立索引,如果該列不唯一則加入rowid列,使其達到唯一,然後進行排序 b 樹索引包括如下幾種 普通索引 反向鍵...

各種MySQL索引型別的介紹

最為mysql最重要的部分之一,索引是學習mysql資料庫不能不提到的。下面就為您詳細介紹各種型別的mysql索引,供您參考學習。1 普通索引 普通索引 由關鍵字key或index定義的索引 的唯一任務是加快對資料的訪問速度。因此,應該只為那些最經常出現在查詢條件 wherecolumn 或排序條件...