反向鍵索引指原來相連比較緊密的值,強制使其分散在相距比較遠的位置上。例如:"11112"和"11113"雖然是連續的值,但是其反轉後卻變成了"21111"和"31111",這樣兩個值相差得比較遠了,從而達到了分散的目的。
這樣做會使得索引中的順序和儲存的儲存順序之間存在很大差別,從而嚴重破壞聚簇因子。但這並不會影響資料的讀取,因為在使用這種索引的情況下只能使用等值運算子"="所構成的查詢條件。
反向鍵索引中由於各個值不是相互連續的,在範圍掃瞄中執行下乙個掃瞄時無法查詢到滿足條件的資料範圍中的值,所以掃瞄無法繼續進行。
它在減少資料的隨機讀取方面有比較好的效果。如銷售表的特徵,即經常需要把大量的資料迅速地插入到該錶,例如超市的銷售表。如果基於列「流水號」建立索引,類似資料比較集中,經常要讀取的資料被集中儲存在某個特定的範圍中,因此很容易導致競爭。
事實上,反向鍵並沒有廣泛使用,因其很難控制好。可以考慮作為備用方案(本人看法)。
oracle之 反向鍵索引
反向鍵索引是一種b tree索引,它在保持列順序的同時,物理地改變每個索引鍵的位元組 反向鍵索引除了rowid和still之外,反轉每個索引列的位元組 例如,如果索引鍵為20,如果在十六進製制中儲存為這個鍵的兩個位元組是c1,則是標準b樹索引中的15個位元組,那麼乙個反向鍵索引將位元組儲存為15,c...
oracle之 反向鍵索引
反向鍵索引是一種b tree索引,它在保持列順序的同時,物理地改變每個索引鍵的位元組 反向鍵索引除了rowid和still之外,反轉每個索引列的位元組 例如,如果索引鍵為20,如果在十六進製制中儲存為這個鍵的兩個位元組是c1,則是標準b樹索引中的15個位元組,那麼乙個反向鍵索引將位元組儲存為15,c...
python中反向索引 列表索引和反向索引
python與索引 我一直在研究乙個普通的python 來將資料從csv中分離出來。我的目標是使用多種策略重新建立這段 以便更好地理解python。稍後將對該 進行改進。我的 是有效的,但有一些事情我不明白。這裡是 with open c my super secret path primary d...