邏輯上: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中某些列 通常是一列 中的值串接而成,索引中通常儲存了索引欄位的每乙個值 也有例外 索引字段類似於詞...