Mysql
如何找出上次分析 MySQL 表的時間?
我主要對 InnoDB 感興趣,但也對 MyISAM 感興趣。
我在 information_schema 中環顧四周,並沒有在任何地方看到這些數據。
我正在使用 MySQL 5.5.16。
沒有直接的控制數據可以告訴您,但是您可以設置一些機制。
機制#1
如果您啟用了二進制日誌記錄,只需使用mysqlbinlog
grep -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 是沒有用的。
Jun 21, 2011
: MySQL 查詢優化器從哪裡讀取索引統計資訊?Aug 04, 2011
:優化 InnoDB 預設設置Oct 16, 2011
:突然不得不重建索引以防止網站宕機希望,
MECHANISM #4
可能是你需要的。