MYSQL Checkpoint 優化

1、checkpoint檢查點爲何產生
  頁操做在緩衝池完成,那麼緩衝池就是爲了協調CPU和磁盤速度,因此頁上作了數據變動,就成了髒頁,就須要從緩衝池刷新到硬盤,那怎麼刷新呢。頻繁確定不行,仍是不少之後再提交或者不用提交,直接影響後續恢復。
數據庫都是這種策略 Write Ahead Log 事物提交時,先寫重作日誌,再修改頁,數據庫

所以永遠不刷頁寫日誌有兩個條件:
緩衝池能夠緩衝全部的數據
重作日誌能夠無限增大
顯然以上條件後續沒法知足,幾個T的數據庫,瘋狂增加的日誌。

此時就須要一個完整的方案機制,去知足可行性條件,而後進行刷新。

2、checkpoint檢查點解決什麼異步

縮短數據庫的恢復時間: checkpoint以前的已經刷盤,只須要恢復後邊的重作日誌
緩衝池不夠用時,將髒頁刷新到磁盤:一樣緩衝池不夠用的時候,也須要更新髒頁到磁盤。
重作日誌不可用時,刷新髒頁:重作日誌是組,循環使用,若是循環以前還須要用到以前的日誌。
MYSQL Checkpoint 優化
執行show engine innodb status \G;
Warnings:生產上這個checkpoint和flushed up 的pos常常不一致。

3、checkpoint檢查點優化參數設置ide

兩種類型:
Sharp Checkpoint   數據庫關閉時刷新全部的髒頁到磁盤

Fuzzy Checkpoint  只刷新一部分髒頁到磁盤,而不是所有

MYSQL Checkpoint 優化
這個參數就是默認的工做方式。Sharp Checkpoint。優化

針對Fuzzy Checkpoint,如下幾種狀況會用到:  
master thread checkpoint   差很少每秒或者每十秒刷新部分髒頁到磁盤,異步,不影響查詢操做。
flush_lru_list checkpoint
相關文章
相關標籤/搜索