程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 關於數據庫反向索引

關於數據庫反向索引

編輯:關於SqlServer

反向索引與平時的常用索引不同的是,它將要增加索引的列的數據按字節顛倒(相當於reverse) 存放,比如要存的數據為:

12345
12346
12347
12348

反轉為:

54321
64321
74321
84321

這樣存的好處是:解決樹的傾斜問題,而且可以解決在大量IO操作的情況下,防止硬盤在某個區域操作過於頻繁,引起"熱點"問題。

不適用的情況:范圍查詢。

適用的情況:數據是按順序增長,如ID等。

名詞解釋:

樹的分支:因為索引一般是按樹這個數據結構來組織,所以有很多分支,把不同類別或范圍的數據存放在分支裡,在符合條件的分支裡查詢比在全表查詢效率高很多。

樹的傾斜:樹的某個分支過與龐大,而其他分支內容卻很少,這樣的索引非常不健康的,查詢速度也很慢,如上面的示例數據,都在10000-20000的分支,而20000-30000或者以上的分支是空的。反轉後把這些數據均勻分布到不同的分支,可以使索引更加健康,也更有效率。

熱點問題:由於系統在表數據的增刪改查的同時,同時要承擔索引開支,而這主要是硬盤的IO操作,如果樹是傾斜的,而且數據的增加是按一定順序增長的,這種情況會導致硬盤對某一固定區域操作頻繁,會出現熱點問題,而且出現瓶頸。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved