Mysql

如何找出上次分析 MySQL 表的時間?

  • October 13, 2020

我主要對 InnoDB 感興趣,但也對 MyISAM 感興趣。

我在 information_schema 中環顧四周,並沒有在任何地方看到這些數據。

我正在使用 MySQL 5.5.16。

沒有直接的控制數據可以告訴您,但是您可以設置一些機制。

機制#1

如果您啟用了二進制日誌記錄,只需使用mysqlbinloggrep -i "analyze table"的輸出對所有二進制日誌執行一次。

機制#2

如果您啟用了通用日誌,只需grep -i "analyze table"對通用日誌文件執行一次操作,然後找到與命令相關的時間戳。

機制#3

ANALYZE TABLE您應該安排一個針對所有具有高寫入、高更新、高刪除量的表執行的 cronjob 。這樣,就沒有猜測工作了。

機制#4

嘗試設置innodb_stats_on_metadata以衡量 InnoDB 表何時需要的可預測性ANALYZE TABLE。(見我Mar 26, 2012的文章: InnoDB 表索引統計何時更新?

警告

過去,我經常說ANALYZE TABLE對 InnoDB 執行 table 是沒有用的。

希望,MECHANISM #4可能是你需要的。

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