Oracle 資料庫 各種索引型別 簡單介紹
阿新 • • 發佈:2018-12-29
各種Oracle索引型別介紹
邏輯上: 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叢集。
分類: sql+資料庫效能優化,sql語句+資料庫,區別對比
https://www.cnblogs.com/langtianya/p/6655050.html