Oracle 海量数据处理- 索引的选择
生活随笔
收集整理的這篇文章主要介紹了
Oracle 海量数据处理- 索引的选择
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在Oracle數(shù)據(jù)庫中,索引按照索引機制的不同,可以分為三種。
應用場景: OLTP 使用比較多,處理鍵值重復率比較低的字段比較適合使用B-Tree索引,處理效率極高。反之當鍵值重復率很高時,B-Tree索引的效率會非常的低效。
在Oracle中主鍵會默認加上B-Tree索引。在Oracle的主鍵和唯一性約束上 使用B-Tree索引
B-Tree索引又可以分為:唯一索引、組合索引、反向鍵索引、基于函數(shù)的索引。
唯一鍵索引:1、唯一鍵索引確保在定義的索引列中沒有重復值, 2、Oracle自動在表的主鍵列上創(chuàng)建唯一鍵索引。 3、使用CREATE UNIQUE INDEX語句創(chuàng)建唯一鍵索引。
組合索引: ? ?1、組合索引在表的多個列上創(chuàng)建的索引。2、索引中列的順序是任意的。3、如果SQL語句的WHERE子句中引用了組合索引的所有列或大多數(shù)列,則可以提高檢索速度。
反向鍵索引:1、反向鍵索引反轉索引列鍵值的每個字節(jié)。2、通常建立在列的值是連續(xù)增值的,目的是為了使數(shù)據(jù)能夠均勻的分布在整索引上。3、創(chuàng)建時使用REVERSE關鍵字。
基于函數(shù)的索引:1、基于一個或多個列上的函數(shù)或表達式創(chuàng)建的索引。2、表達式中不能出現(xiàn)聚合函數(shù)。3、不能在LOB類型的列上創(chuàng)建。4、創(chuàng)建時必須有QUERY REWRITE權限。
2. 位圖索引 ? ? ?Bitmap index
應用場景:1)處理鍵值重復率比較高的字段比較適合使用。2)比B-Tree索引更節(jié)省空間。3)在OLAP系統(tǒng)中使用比較頻繁。當一個表上某個(幾個)字段的數(shù)值有明顯的大量重復時,比如字段是國家、地區(qū)、性別(世界上,或者該字段為其他的一些標識性信息。4)特定類型的查詢下性能很高。比如,要對一個結果集進行count操作,特別是在SQL語句的條件部分,在很多字段之間存在著邏輯“與”、“或”運算的查詢方式。
劣勢:1、索引列上不適合頻繁的進行DML操作。2、值重復率比較低的情況不適合使用。 3、 位圖索引適合在數(shù)據(jù)倉庫中使用,在OLTP中不常使用。
create bitmap index index_name on table_name(column_name);
3. 全文索引 ? ? ?Text index
應用場合: 屬于數(shù)據(jù)倉庫范疇,在OLTP系統(tǒng)中使用并不廣泛。全文索引的優(yōu)點在于可以對詞匯的進行快速搜索。
劣勢 :全文索引要 占用 大量的空間?
context類型的全文索引是 不基于事務的 無法 實現(xiàn)數(shù)據(jù)和索引同步。
總結
以上是生活随笔為你收集整理的Oracle 海量数据处理- 索引的选择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NBA部署SAP HANA内存数据库
- 下一篇: SAP HANA ANY和ALL关键字