top
Loading...
7.4.6.3.中點插入策略
7.4.6.3. 中點插入策略

默認情況,鍵高速緩沖管理系統采用LRU策略選擇要收回的鍵高速緩沖塊,但它也支持更復雜的方法,稱之為“中點插入策略”。

當使用中點插入策略時,LRU鏈被分為兩個部分:一條熱子鏈和一條溫子鏈。兩部分之間的劃分點不固定,但 鍵高速緩沖管理系統關注溫部分不“太短”,總是包含至少key_cache_division_limit比例的 鍵高速緩沖塊。key_cache_division_limit是結構式 鍵高速緩沖變量的一個組件,因此其值是一個可以根據每個緩存進行設置的參數。

當一個索引塊從表中讀入鍵高速緩沖,它被放入溫子鏈的末端。經過一定量的訪問后(訪問塊),它被提升給熱子鏈。目前,需要用來提升一個塊(3)的訪問次數與所有索引塊的相同。

提升到熱子鏈的塊被放到子鏈的末端。塊然后在該子鏈中循環。如果塊在子鏈的開頭停留足夠長的時間,它被降到溫鏈。該時間由鍵高速緩沖key_cache_age_threshold組件的值確定。

對于包含N個塊的 鍵高速緩沖,閾值表示,熱子鏈開頭的沒有在最后N *key_cache_age_threshold/100次訪問中被訪問的塊將被移動到溫子鏈開頭。該塊然后變為第1個擠出的候選者,因為替換的塊總是來自溫子鏈的開頭。

中點插入策略允許你將更有價值的塊總是在緩存中。如果你想使用簡單的LRU策略,使key_cache_division_limit值保持其默認值100

若執行的查詢要求索引掃描有效推出所有索引塊對應有數值的高級B-樹節點的緩存,中點插入策略可以幫助提高性能。要想避免,必須使用中點插入策略,而key_cache_division_limit設置為遠小于100。然后在索引掃描操作過程中,有數值的經常訪問的節點被保留在熱子鏈中。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗