When are Innodb Table Statistics Updated?

Innodb statistics are used by the query optimizer to assist it in choosing an efficient query execution plan. They are estimated values relating to each Innodb table and index.

But what updates them? Let’s take a look.

Operations that update Innodb table statistics

Typically this happens during metadata statements such as SHOW INDEX or SHOW TABLE STATUS.

It also occurs when querying INFORMATION_SCHEMA tables such as TABLES and STATISTICS.

This is default behaviour however a variable was introduced in version 5.5.4 which allowed the administrator to override this. The variable name is innodb_stats_on_metadata.

When it is turned off, Innnodb statistics are not updated during those operations. For schemas that have a large number of tables or indexes, this can have a positive effect on access speeds. It can also improve the stability of execution plans that involve Innodb tables.

If it is turned off the alternative is to run ANALYZE TABLE which is a similar operation to those mentioned involving INFORMATION_SCHEMA etc. It will update the statistics but place a read lock on the table during the process.

It's only fair to share...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestBuffer this pageShare on RedditShare on StumbleUpon
About Andy Hayes

Andy Hayes is a DBA working with SQL Server since version 7.0. He has a wonderful wife and two beautiful children. He loves database technology, playing cricket, and blogging. He is passionate about sharing his experiences as a DBA and learning more to further his understanding and knowledge. You can follow me on Twitter, check out my Facebook page or follow me on

Speak Your Mind