反向鍵索引指原來相連比較緊密的值,強制使其分散在相距比較遠的位置上。例如:"11112"和"11113"雖然是連續的值,但是其反轉後卻變成了"21111"和"31111",這樣兩個值相差得比較遠了,從而達到了分散的目的。

    這樣做會使得索引中的順序和存儲的存儲順序之間存在很大差別,從而嚴重破壞聚簇因子。但這並不會影響數據的讀取,因為在使用這種索引的情況下只能使用等值運算符"="所構成的查詢條件。

    反向鍵索引中由於各個值不是相互連續的,在範圍掃描中執行下一個掃描時無法查找到滿足條件的數據範圍中的值,所以掃描無法繼續進行。

    它在減少數據的隨機讀取方面有比較好的效果。如銷售表的特徵,即經常需要把大量的數據迅速地插入到該表,例如超市的銷售表。如果基於列“流水號”創建索引,類似數據比較集中,經常要讀取的數據被集中存儲在某個特定的範圍中,因此很容易導致競爭。

    事實上,反向鍵並沒有廣泛使用,因其很難控制好。可以考慮作為備用方案(本人看法)。