Where the open source database community meets: Use code PERCONA75 and secure your spot for Percona Live.  Register

InnoDB TABLE/INDEX stats

March 20, 2010
Author
Vadim Tkachenko
Share this Post:

In Released and new coming features I did not mentioned two additional INFORMATION_SCHEMA tables available in XtraDB:
It is

  • INNODB_TABLE_STATS
  • INNODB_INDEX_STATS

These table show statistics about InnoDB tables ( taken from InnoDB data dictionary).

INNODB_TABLE_STATS is

  • | table_name | table name in InnoDB internal style (‘database/table’) |
  • | rows | estimated number of all rows |
  • | clust_size | cluster index (table/primary key) size in number of pages|
  • | other_size | other index (non primary key) size in number of pages|
  • | modified | internal counter to judge whether statistics recalculation should be done |

INNODB_INDEX_STATS is

  • | table_name | table name in InnoDB internal style (‘database/table’) |
  • | index_name | index name |
  • | fields | How many fields the index key has. (it is internal structure of InnoDB, it may be larger than the ‘CREATE TABLE’) |
  • | row_per_keys | estimate rows per 1 key value. ([1 column value], [2 columns value], [3 columns value], …) |
  • | index_size | index size in pages |
  • | leaf_pages | number of leaf pages |

Using these stats you can estimate how big is index is, and also what is statistics per index (or at least what InnoDB thinks about statistics in index)

0 0 votes
Article Rating
Subscribe
Notify of
guest

8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Arjen Lentz
16 years ago

For both, can you add a column counting access?
This could then easily replace the server based table/index statistics and possibly in a more efficient manner.

Shlomi Noach
16 years ago

Would you add “index_depth” column for indexes?

Emily
Emily
16 years ago

Is this coming to core, or is it exclusively percona?

张三
张三
13 years ago

Cannot find or open table mysql/innodb_index_stats from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but have forgotten to delete the corresponding .frm files of InnoDB tables, or you have moved .frm files to another database? or, the table contains indexes that this version of the engine doesn’t support. why?

Jyothi
Jyothi
13 years ago

I have installed mysql5.6.10, following error is seen in .err
InnoDB: Error: Table “mysql”.”innodb_table_stats” not found.

When Mysql services is started, after deleting ib log and data files.

Please help

Sri
Sri
9 years ago

Hi,

Currently, we are using Mariadb , in order to know the analyze stats are stale, i build below SQL, using INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS , mysql.innodb_table_stats and INFORMATION_SCHEMA.STATISTICS.

Far
Enough.

Said no pioneer ever.
MySQL, PostgreSQL, InnoDB, MariaDB, MongoDB and Kubernetes are trademarks for their respective owners.
© 2026 Percona All Rights Reserved