oracle資料庫索引簡單總結

2021-08-27 20:56:39 字數 1419 閱讀 1596

邏輯上:

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資料庫索引

標籤 資料庫 oracle 索引index 2013 06 14 16 54 4148人閱讀收藏 舉報 database 6 目錄 索引基本概念 索引的作用 索引的架構 oracle索引的型別 1 基於函式的索引 2 位圖索引 oracle索引的實現 索引是用於加速資料訪問的資料物件,合理的使用索引...

Oracle資料庫 索引

索引通過指標的形式提高資料查詢的速度。如果乙個資料量比較大的資料庫經常被查詢而插入刪除的次數較少,則應該建立索引,相反,小表或經常被插入或修改,則不建議建立索引。1.建立索引 create index emp phone number ix on employees phone number 2.建...

Oracle資料庫 索引

索引是定義在儲存表基礎之上,有助於無需檢查所有記錄而快速定位所需記錄的一種輔助儲存結構,由一系列儲存在磁碟上的索引項 index entries 組成,每個索引項又由兩部分構成 索引字段 由table中某些列 通常是一列 中的值串接而成,索引中通常儲存了索引欄位的每乙個值 也有例外 索引字段類似於詞...