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 communityThere 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 grep -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.
Try setting innodb_stats_on_metadata to have a measure of predictability as to when an InnoDB table needs ANALYZE TABLE
. (See my Mar 26, 2012
post :
When are InnoDB table index statistics updated? )
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 settingsOct 16, 2011
: Suddenly have to rebuild indexes to prevent site from going downHopefully, MECHANISM #4
is probably what you need.
innodb_stats_on_metadata
in order to improve the performance of information_schema.
Jan 4, 2013 at 20:05
information_schema.STATISTICS
could possibly be more stabilized by ` innodb_stats_on_metadata`.
Jan 4, 2013 at 21:00
innodb_stats_on_metadata
. I'll accept your answer now as it's clear that there is no easy way to get this data form MySQL.
Jan 4, 2013 at 22:22