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