I'm interested in this for InnoDB mostly, but also for MyISAM.
I looked around in information_schema and did not see this data anywhere.
I'm using MySQL 5.5.16.
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.Sign up to join this community
There is no immediate control data to tell you that, but there are a few mechanisms you can setup.
If you have binary logging enabled, simply do a
rep -i "analyze table" against all the binary logs using the output from mysqlbinlog.
If you have the general log enabled, simply do a
grep -i "analyze table" against the general log file and locate the timestamp just about the command.
You should schedule a cronjob that runs
ANALYZE TABLE against all tables that have high-write, high-update, high-delete volume. That way, there is no guess work.
In the past, I have often stated that running
ANALYZE TABLE table against InnoDB is useless.
Jun 21, 2011: From where does the MySQL Query Optimizer read index statistics?
Aug 04, 2011: Optimizing InnoDB default settings
Oct 16, 2011: Suddenly have to rebuild indexes to prevent site from going down
MECHANISM #4 is probably what you need.