在Oracle資料庫中,索引按照索引機制的不同,可以分為三種。
1. B-Tree索引 B-Tree index
應用情境: OLTP 使用比較多,處理索引值重複率比較低的欄位比較適合使用B-Tree索引,處理效率極高。反之當索引值重複率很高時,B-Tree索引的效率會非常的低效。
在Oracle中主鍵會預設加上B-Tree索引。在Oracle的主鍵和唯一性限制式上 使用B-Tree索引
B-Tree索引又可以分為:唯一索引、複合式索引、反向鍵索引、基於函數的索引。
唯一鍵索引:1、唯一鍵索引確保在定義的索引列中沒有重複值, 2、Oracle自動在表的主鍵列上建立唯一鍵索引。 3、使用CREATE UNIQUE INDEX語句建立唯一鍵索引。
複合式索引: 1、複合式索引在表的多個列上建立的索引。2、索引中列的順序是任意的。3、如果SQL語句的WHERE子句中引用了複合式索引的所有列或大多數列,則可以提高檢索速度。
反向鍵索引:1、反向鍵索引反轉索引列索引值的每個位元組。2、通常建立在列的值是連續增值的,目的是為了使資料能夠均勻的分布在整索引上。3、建立時使用REVERSE關鍵字。
基於函數的索引:1、基於一個或多個列上的函數或運算式建立的索引。2、運算式中不能出現彙總函式。3、不能在LOB類型的列上建立。4、建立時必須有QUERY REWRITE許可權。
2. 位元影像索引 Bitmap index
應用情境:1)處理索引值重複率比較高的欄位比較適合使用。2)比B-Tree索引更節省空間的。3)在OLAP系統中使用比較頻繁。當一個表上某個(幾個)欄位的數值有明顯的大量重複時,比如欄位是國家、地區、性別(世界上,或者該欄位為其他的一些標識性資訊。4)特定類型的查詢下效能很高。比如,要對一個結果集進行count操作,特別是在SQL語句的條件部分,在很多欄位之間存在著邏輯“與”、“或”運算的查詢方式。
劣勢:1、索引列上不適合頻繁的進行DML操作。2、值重複率比較低的情況不適合使用。 3、 位元影像索引適合在資料倉儲中使用,在OLTP中不常使用。
create bitmap index index_name on table_name(column_name);
3. 全文索引 Text index
應用場合: 屬於資料倉儲範疇,在OLTP系統中使用並不廣泛。全文索引的優點在於可以對詞彙的進行快速搜尋。
劣勢 :全文索引要 佔用 大量的空間
context類型的全文索引是 不基於事務的 無法 實現資料和索引同步。
下一篇:Oracle海量資料處理-並行