反向索引 將索引鍵值的位元組順序反轉後再存入 B-Tree,主要解決單調遞增鍵值(如序號、時間戳)導致的「右側增長」熱點問題。
原始值: 反轉後:
12345 --> 54321
12346 --> 64321
12347 --> 74321
12348 --> 84321
IDENTITY、SEQUENCE、UUID (非隨機) 等單調遞增值。=) 為主,鮮少範圍掃描。WHERE id BETWEEN 1000 AND 2000 反轉後鍵值順序打亂,無法利用索引範圍掃描,退化為全索引掃描。ORDER BY id 需額外排序作業。| 術語 | 定義 |
|---|---|
| 樹分支 | B-Tree 非葉節點,導向不同鍵值範圍的子樹。 |
| 樹傾斜 | 特定分支節點極深/極滿,其他分支稀疏,導致查詢路徑長度不均。 |
| 熱點 | 大量並發存取集中於同一物理頁面,引發 Latch 爭用、I/O 瓶頸。 |
CREATE INDEX idx_rev ON tbl(col) REVERSE;REVERSE(CAST(col AS varchar)) + 索引模擬。CREATE INDEX idx_rev ON tbl USING btree (col DESC); 並非真正反向,但可緩解右側增長。