oracle之 反向鍵索引
反向鍵索引是一種B-tree索引,它在保持列順序的同時,物理地改變每個索引鍵的位元組(反向鍵索引除了ROWID和still之外,反轉每個索引列的位元組)。例如,如果索引鍵為20,如果在十六進位制中儲存為這個鍵的兩個位元組是C1,則是標準b樹索引中的15個位元組,那麼一個反向鍵索引將位元組儲存為15,C1。
優點:
反轉鍵解決了b樹索引右側葉塊爭用的問題。這個問題在Oracle Real Application cluster (Oracle RAC)資料庫中尤其突出,在這個資料庫中多個例項反覆修改同一個塊。例如,在orders表中,訂單的主鍵是順序的。叢集中的一個例項新增了order 20,而另一個例項新增了21,每個例項都將其關鍵字寫入索引右側的同一個葉塊。
在反向鍵索引中,位元組順序的反轉分佈在索引中的所有葉鍵上。例如,在標準鍵索引中相鄰的20和21這樣的鍵現在被分開儲存在不同的塊中(索引會在左邊,中間,右邊-到處都是)。所以爭論就這樣消失了。因此,順序鍵插入的I/O分佈更均勻。
缺點:
但是,必須指出的是:現在整個索引最好在緩衝區快取中,而在之前——只有熱的右側需要在快取中進行有效的插入。如果索引不能放入快取,我們很可能會將緩衝區繁忙的等待變成物理IO等待,這可能更糟(補救比症狀更糟糕)。
由於索引中的資料在儲存時沒有按列鍵排序,所以反向鍵安排在某些情況下消除了執行索引範圍掃描查詢的能力。例如,如果使用者對大於20的訂單ID發出查詢,那麼資料庫就不能從包含該ID的塊開始,然後水平地透過葉塊進行。
總結:
這些索引旨在消除插入應用程式上的索引熱點。這些索引對於插入效能非常好,但是它們是有限的,因為資料庫不能使用它們進行索引範圍掃描。
語法:
create index <INDEX_NAME> on <TABLE_NAME> (<COLUMN_NAME>, <COLUMN_NAME>)
REVERSE;
參考:What Are Reverse Key Indexes? (文件 ID 1070627.6)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2152153/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle全文索引之幾個關鍵表Oracle索引
- Oracle索引梳理系列(六)- Oracle索引種類之函式索引Oracle索引函式
- 反向索引處理前%索引
- Oracle優化案例-分割槽索引之無字首索引(六)Oracle優化索引
- oracle全文索引之同步和優化索引做了什麼Oracle索引優化
- Oracle 索引Oracle索引
- oracle全文索引之commit與DML操作Oracle索引MIT
- oracle全文索引之如何實現查詢Oracle索引
- oracle的索引Oracle索引
- InnoDB關鍵特性之自適應hash索引索引
- oracle全文索引之配置全文檢索環境Oracle索引
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- 0707_oracle 索引Oracle索引
- oracle重建索引(二)Oracle索引
- Oracle OCP(25):索引Oracle索引
- Oracle虛擬索引Oracle索引
- Oracle:全文索引Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(四)三星級索引Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(二)索引過濾列概述Oracle索引
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- TLS 1.3已反向移植到的Oracle JDK8 - OracleTLSOracleJDK
- oracle索引核心過程Oracle索引
- Oracle的全文索引Oracle索引
- mysql索引之字首索引MySql索引
- Oracle GoldenGate 針對表沒有主鍵或唯一索引的解決方案OracleGo索引
- 【TUNE_ORACLE】Oracle索引設計思想(一)索引片和匹配列概述Oracle索引
- 10.30 索引,外來鍵索引
- oracle複合索引介紹(多欄位索引)Oracle索引
- oracle 索引和不走索引的幾種形式Oracle索引
- Oracle大表快速建立索引Oracle索引
- 【Oracle】 索引的掃描方式Oracle索引
- Oracle vs PG 索引資訊Oracle索引
- Oracle中的B樹索引Oracle索引
- Oracle如何建立B樹索引Oracle索引
- 淺談Nginx之反向代理Nginx
- mysql刪除主鍵索引,刪除索引語法MySql索引
- oracle sqlplus 回退鍵以及上下鍵OracleSQL