Mysql
在 MySQL 中設置 innodb_stats_persistent_sample_pages 是否有任何指導方針?
預設值 (20) 似乎可以為小表生成相當準確的索引基數,這反過來會產生良好的執行計劃。但據我所見,一旦你的桌子變大,準確性就會開始下降。
至少在我看來,採樣的頁數應該是總行數的百分比,這聽起來很合理。
我嘗試閱讀手冊並嘗試搜尋相關文獻,但到目前為止我還沒有找到任何東西。
我總是可以嘗試和錯誤的路線,但我肯定不是唯一一個遇到這個難題的人。
提前致謝!
真是個爛片
- 太高 –> 耗時太長;不一定有更好的統計數據
- 太低–>不准確的統計數據
- 百分比 –> 1% 接近於命中每個塊(對於每個塊大約有 100 行的典型表)。
- 隨著表的增長,據稱 InnoDB 在增長 10% 後重新分析,因此不需要手動操作。
- 大多數表都有從 20 開始的不錯的統計數據。
- 分佈不均勻的表不會從更改“20”中受益,至少在實施一些體面的“直方圖”統計數據之前不會。然後,優化變得更加複雜,並且可能更慢。
底線:保持在 20。保持慢速登錄。處理慢日誌中最糟糕的條目,著眼於不依賴於“20”的解決方案。