MySQL InnoDB髒頁管理

guocun09發表於2020-09-14

MySQL髒頁管理,InnoDB中有專門列表Flush List管理刷盤。

使用Flush List主要為了讓InnoDB(資料檔案)儘可能保持較新狀態,在系統崩潰時可以快速恢復。


Flush List大小由innodb_lru_scan_depth 決定,MySQL5.7預設1024,即16M。每秒從LRU尾部重新整理髒頁的數量。

髒頁重新整理比innodb_max_dirty_pages_pct 決定,預設是75%,即髒頁達到了buffer pool的75%會刷盤。


buffer pool幾個List和page的關係:


buffer pool中最小單位是page,分為:

Free Page:此page未被使用,位於Free List中

Clean Page:此page被使用,對應資料檔案中的一個page,但page沒有被修改

Dirty Page:此page被使用 ,對應資料檔案中的一個page,但page被修改。此種page存在LRU List和Flush List中


參考:

https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html

MySQL DBA工作筆記(楊建榮)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2719531/,如需轉載,請註明出處,否則將追究法律責任。

相關文章