文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  中點插入策略

10.10.2.3 中點插入策略

預設情況下,索引鍵快取管理系統使用簡單的 LRU 策略來選擇要逐出的索引鍵快取區塊,但它也支援一種更複雜的方法,稱為中點插入策略。

當使用中點插入策略時,LRU 鏈會分成兩部分:熱子清單和溫子清單。兩部分之間的分割點不是固定的,但索引鍵快取管理系統會確保溫子部分不會太短,始終包含至少 key_cache_division_limit 百分比的索引鍵快取區塊。key_cache_division_limit 是結構化索引鍵快取變數的組成部分,因此其值是可以針對每個快取設定的參數。

當從資料表讀取索引區塊到索引鍵快取時,它會被放置在溫子清單的末端。在經過一定次數的命中 (存取該區塊) 後,它會被提升到熱子清單。目前,提升區塊所需的命中次數 (3) 對於所有索引區塊都是相同的。

提升到熱子清單的區塊會被放置在清單的末端。然後,區塊會在該子清單內循環。如果區塊在子清單的開頭停留足夠長的時間,則會降級到溫子清單。此時間由索引鍵快取的 key_cache_age_threshold 組成部分的值決定。

閾值值規定,對於包含 N 個區塊的索引鍵快取,在最近 N * key_cache_age_threshold / 100 次命中內未存取的熱子清單開頭的區塊將移動到溫子清單的開頭。然後,它會成為逐出的第一個候選者,因為用於替換的區塊始終取自溫子清單的開頭。

中點插入策略可讓您始終在快取中保留較有價值的區塊。如果您偏好使用普通的 LRU 策略,請將 key_cache_division_limit 值保留為預設值 100。

當執行查詢 (需要索引掃描) 時,如果有效地將對應於有價值的高層級 B 樹節點的所有索引區塊推出快取,中點插入策略有助於提高效能。為避免這種情況,您必須使用中點插入策略,並將 key_cache_division_limit 設定為遠小於 100 的值。然後,在索引掃描作業期間,有價值且經常命中的節點也會保留在熱子清單中。