邏輯上: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 或排序條件...