文章出處

邏輯上:
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集群。

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()