February 9, 2012

InnoDB TABLE/INDEX stats

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)

About Vadim Tkachenko

Vadim leads Percona's development group, which produces the Percona Server and Percona XtraBackup. He is an expert in solid-state storage, and has helped many hardware and software providers succeed in the MySQL market.

Comments

  1. Arjen Lentz says:

    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.

  2. Shlomi Noach says:

    Would you add “index_depth” column for indexes?

  3. Vadim says:

    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.

  4. Emily says:

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

  5. Vadim says:

    Emily,

    For now it is only in Percona-XtraDB, but it is not exclusive.
    Everyone, including core, can implement it.

Speak Your Mind

*