Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The INFORMATION_SCHEMA INNODB_TABLESTATS View

28.4.26 INFORMATION_SCHEMA INNODB_ TABLESTATS 视图

INNODB_TABLESTATS 表视图提供了低级别状态信息关于 InnoDB 表。这个数据用于 MySQL 优化器计算查询 InnoDB 表时使用哪个索引。这些信息来自内存数据结构,而不是磁盘存储的数据。没有对应的内部 InnoDB 系统表。

InnoDB 表在这个视图中被表示,如果它们自上次服务器重启以来已经打开,并且没有超出表缓存的年龄限制。对于持久化统计信息可用的表,这个视图总是包含这些表的信息。

表统计信息仅更新 DELETE 或 UPDATE 操作,修改了索引列的操作。对非索引列进行操作不更新统计信息。

ANALYZE TABLE 清除表统计信息,并将 STATISTICS_INITIALIZED 列设置为 Uninitialized。下次访问表时,统计信息将被重新收集。

相关使用信息和示例,请见第17.15.3节,“InnoDB INFORMATION_SCHEMA Schema Object Tables”

INNODB_TABLESTATS 表具有以下列:

  • TABLE_ID

    表示可用统计信息的表标识符;与INNODB_TABLES.TABLE_ID相同值。

  • NAME

    表名;与INNODB_TABLES.NAME相同值。

  • STATS_INITIALIZED

    如果统计信息已经收集,则该值为Initialized,否则为Uninitialized

  • NUM_ROWS

    表当前估算的行数。每个DML操作后更新。未提交事务插入或删除数据时,值可能不准确。

  • CLUST_INDEX_SIZE

    存储聚簇索引的磁盘页面数,这个索引持有InnoDB表数据的主键顺序。如果没有收集统计信息,则该值可能为null。

  • OTHER_INDEX_SIZE

    存储所有次要索引的磁盘页面数。 如果没有收集统计信息,则该值可能为null。

  • MODIFIED_COUNTER

    DML 操作(如 INSERTUPDATEDELETE)修改的行数,也包括外键约束的级联操作。这一列每次重新计算表统计信息时都会被重置。

  • AUTOINC

    用于任何自增操作的下一个数字。AUTOINC 值的变化速度取决于自增号请求的次数和每次请求授予的数量。

  • REF_COUNT

    当这个计数器达到零时,可以从表缓存中 evict 表元数据。

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_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

  • 这张表主要用于专家级别的性能监控或开发 MySQL 性能相关扩展。

  • 您需要拥有 PROCESS 权限才能查询这张表。

  • 使用 INFORMATION_ SCHEMA COLUMNS 表或SHOW COLUMNS 语句来查看这张表的列信息,包括数据类型和默认值。