Innodb

為什麼小型數據庫有 Innodb_buffer_pool_reads?

  • April 7, 2020

我有一個小於 400MB 的小型數據庫,在具有 16GB 記憶體的機器上使用 MariaDB 10.4。我在執行一些查詢性能測試時將 innodb_buffer_pool_size 設置為 2G。

大小設置為 2G,超過數據庫總大小的 4 倍,為什麼我會得到任何 Innodb_buffer_pool_reads?為什麼不能在緩衝池中找到所有讀取?

測試執行後,我得到 Innodb_buffer_pool_read_requests = 280,980,648 Innodb_buffer_pool_reads = 27,089

我不介意命中率;我只是想知道我是否對緩衝池有誤解。

這些是自伺服器啟動以來的計數。

這些頁面必須在某個階段被讀取才能進入緩衝池。

作為測試,嘗試 amysqldump --all-databases --skip-locks以確保讀取每一行。然後看看Innodb_buffer_pool_reads。然後看看這個值在接下來的幾天裡是否會增加。

引用自:https://dba.stackexchange.com/questions/264464