Mysql

在 MySQL 中設置 innodb_stats_persistent_sample_pages 是否有任何指導方針?

  • August 23, 2017

預設值 (20) 似乎可以為小表生成相當準確的索引基數,這反過來會產生良好的執行計劃。但據我所見,一旦你的桌子變大,準確性就會開始下降。

至少在我看來,採樣的頁數應該是總行數的百分比,這聽起來很合理。

我嘗試閱讀手冊並嘗試搜尋相關文獻,但到目前為止我還沒有找到任何東西。

我總是可以嘗試和錯誤的路線,但我肯定不是唯一一個遇到這個難題的人。

提前致謝!

真是個爛片

  • 太高 –> 耗時太長;不一定有更好的統計數據
  • 太低–>不准確的統計數據
  • 百分比 –> 1% 接近於命中每個塊(對於每個塊大約有 100 行的典型表)。
  • 隨著表的增長,據稱 InnoDB 在增長 10% 後重新分析,因此不需要手動操作。
  • 大多數表都有從 20 開始的不錯的統計數據。
  • 分佈不均勻的表不會從更改“20”中受益,至少在實施一些體面的“直方圖”統計數據之前不會。然後,優化變得更加複雜,並且可能更慢。

底線:保持在 20。保持慢速登錄。處理慢日誌中最糟糕的條目,著眼於不依賴於“20”的解決方案。

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