關於資料庫反向索引

2021-06-25 23:58:26 字數 645 閱讀 8407

反向索引與平時的常用索引不同的是,它將要增加索引的列的資料按位元組顛倒(相當於reverse) 存放,比如要存的資料為:

12345

12346

12347

12348

反轉為:

54321

64321

74321

84321

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

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

適用的情況:資料是按順序增長,如id等。

名詞解釋:

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

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

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

關於資料庫反向索引

反向索引與平時的常用索引不同的是,它將要增加索引的列的資料按位元組顛倒 相當於reverse 存放,比如要存的資料為 12345 12346 12347 12348 反轉為 54321 64321 74321 84321 這樣存的好處是 解決樹的傾斜問題,而且可以解決在大量io操作的情況下,防止硬碟...

關於資料庫索引

i mysql資料庫索引型別 1 唯一索引 不允許表中任意兩行具有相同值的索引。2 非唯一索引 允許其中任何兩行具有相同索引值的索引。3 主鍵索引 資料庫表中有一列或列組合,其值唯一標識表中的每一行。4 聚集索引 表中記錄的物理順序與索引的順序一致。一張表只能有乙個聚集索引。5 非聚集索引 表中記錄...

資料庫 關於索引

什麼是索引 索引就像是書的目錄,是與表或檢視關聯的磁碟上結構,可以加快從表或檢視中檢索行的速度。索引中包含由表或檢視中的一列或多列生成的鍵。這些鍵儲存在乙個結構 btree 中,使sql可以快速有效地查詢與鍵值關聯的行。2.為什麼要建立索引,即索引的優點 建立索引的列可以保證行的唯一性,生成唯一的r...