EmergencyEMERGENCY? Get 24/7 Help Now!

InnoDB TABLE/INDEX stats

 | March 20, 2010 |  Posted In: MySQL, Percona Software

PREVIOUS POST
NEXT 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)

PREVIOUS POST
NEXT POST
Vadim Tkachenko

Vadim Tkachenko co-founded Percona in 2006 and serves as its Chief Technology Officer. Vadim leads Percona Labs, which focuses on technology research and performance evaluations of Percona’s and third-party products. Percona Labs designs no-gimmick tests of hardware, filesystems, storage engines, and databases that surpass the standard performance and functionality scenario benchmarks. Vadim’s expertise in LAMP performance and multi-threaded programming help optimize MySQL and InnoDB internals to take full advantage of modern hardware. Oracle Corporation and its predecessors have incorporated Vadim’s source code patches into the mainstream MySQL and InnoDB products. He also co-authored the book High Performance MySQL: Optimization, Backups, and Replication 3rd Edition.

8 Comments

  • Arjen, Shlomi,

    What we show there is already available information in InnoDB data dictionary.
    What you ask needs some additional changes in InnoDB data dict, which may be not easy to
    archive (may break compatibility with current data dict), but it is hard to say, I did not look into yet.

  • 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?

  • 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

  • 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.

Leave a Reply