The INNODB_SYS_TABLESTATS provides a view of
low-level status information about InnoDB
tables. This data is used by the MySQL optimizer to calculate
which index to use when querying an InnoDB
table. This information is derived from in-memory data structures
rather than corresponding to data stored on disk. There is no
corresponding internal InnoDB system table.
InnoDB tables are represented in this view if
they have been opened since the last server restart, and not aged
out of the table cache. Tables for which persistent stats are
available are always represented in this view.
Table statistics are only updated for
DELETE or
UPDATE operations that modify
indexed columns. Statistics are not updated by operations that
only modify non-indexed columns.
For related usage information and examples, see Section 14.15.3, “InnoDB INFORMATION_SCHEMA System Tables”.
Table 21.26 INNODB_SYS_TABLESTATS Columns
| Column name | Description |
|---|---|
TABLE_ID | An identifier representing the table for which statistics are available,
using the same value as
INNODB_SYS_TABLES.TABLE_ID. |
NAME | The name of the table, using the same value as
INNODB_SYS_TABLES.NAME. |
STATS_INITIALIZED | The value is Initialized if the statistics are
already collected, Uninitialized if
not. |
NUM_ROWS | The current estimated number of rows in the table. Updated after each DML operation. Could be imprecise if uncommitted transactions are inserting into or deleting from the table. |
CLUST_INDEX_SIZE | Number of pages on disk that store the clustered index, which holds the
InnoDB table data in primary key order.
This value might be null if no statistics are collected
yet for the table. |
OTHER_INDEX_SIZE | Number of pages on disk that store all secondary indexes for the table. This value might be null if no statistics are collected yet for the table. |
MODIFIED_COUNTER | The number of rows modified by DML operations, such as
INSERT, UPDATE,
DELETE, and also cascade operations
from foreign keys. This column is reset each time table
statistics are recalculated |
AUTOINC | The next number to be issued for any auto-increment-based operation. The
rate at which the AUTOINC value changes
depends on how many times auto-increment numbers have been
requested and how many numbers are granted per request. |
REF_COUNT | When this counter reaches zero, the table metadata can be evicted from the table cache. |
Example:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: test/t1
STATS_INITIALIZED: Initialized
NUM_ROWS: 1
CLUST_INDEX_SIZE: 1
OTHER_INDEX_SIZE: 0
MODIFIED_COUNTER: 1
AUTOINC: 0
REF_COUNT: 1
Notes:
This table is primarily useful for expert-level performance monitoring, or when developing performance-related extensions for MySQL.
Use DESCRIBE or
SHOW COLUMNS to view additional
information about the columns of this table including data
types and default values.
You must have the PROCESS
privilege to query this table.