文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  設定緩衝池刷新

17.8.3.5 設定緩衝池刷新

InnoDB 在背景執行某些任務,包括從緩衝池刷新髒頁。髒頁是指已修改但尚未寫入磁碟上的資料檔案的頁面。

緩衝池刷新由頁面清理器執行緒執行。頁面清理器執行緒的數目由 innodb_page_cleaners 變數控制,其預設值設定為與 innodb_buffer_pool_instances 相同的值。

當髒頁的百分比達到 innodb_max_dirty_pages_pct_lwm 變數定義的低水位標記值時,就會啟動緩衝池刷新。預設的低水位標記是緩衝池頁面的 10%。innodb_max_dirty_pages_pct_lwm 值為 0 時,會停用此早期刷新行為。

innodb_max_dirty_pages_pct_lwm 臨界值的目的是控制緩衝池中的髒頁百分比,並防止髒頁數量達到 innodb_max_dirty_pages_pct 變數定義的臨界值,其預設值為 90。如果緩衝池中的髒頁百分比達到 innodb_max_dirty_pages_pct 臨界值,InnoDB 會積極地刷新緩衝池頁面。

設定 innodb_max_dirty_pages_pct_lwm 時,該值應始終低於 innodb_max_dirty_pages_pct 值。

其他變數允許微調緩衝池刷新行為

  • innodb_flush_neighbors 變數定義是否從緩衝池刷新頁面也會刷新同一個範圍中的其他髒頁。

    • 預設設定 0 會停用 innodb_flush_neighbors。不會刷新同一個範圍中的髒頁。建議非旋轉式儲存 (SSD) 裝置使用此設定,因為尋找時間不是重要因素。

    • 設定為 1 會刷新同一個範圍中的連續髒頁。

    • 設定為 2 會刷新同一個範圍中的髒頁。

    當表格資料儲存在傳統 HDD 儲存裝置上時,在一個操作中刷新相鄰頁面會減少 I/O 負擔 (主要針對磁碟尋找操作),與在不同時間刷新個別頁面相比。對於儲存在 SSD 上的表格資料,尋找時間不是重要因素,您可以停用此設定以分散寫入操作。