Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

28.4.26 INFORMATION_SCHEMA INNODB_TABLESTATS 视图

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

InnoDB 表在该视图中表示,如果它们自上次服务器重启以来已经打开,并且尚未从表缓存中过期。具有持久统计信息的表总是该视图的一部分。

表统计信息仅在 DELETEUPDATE 操作修改索引列时更新。统计信息不更新非索引列的修改操作。

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

有关使用信息和示例,请参阅 第 17.15.3 节,“InnoDB INFORMATION_SCHEMA 模式对象表”

INNODB_TABLESTATS 视图具有以下列:

  • TABLE_ID

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

  • NAME

    表名;与 INNODB_TABLES.NAME 相同。

  • STATS_INITIALIZED

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

  • NUM_ROWS

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

  • CLUST_INDEX_SIZE

    聚簇索引的磁盘页数,该索引以主键顺序存储 InnoDB 表数据。如果尚未收集表统计信息,则该值可能为空。

  • OTHER_INDEX_SIZE

    表的所有次要索引的磁盘页数。如果尚未收集表统计信息,则该值可能为空。

  • MODIFIED_COUNTER

    由 DML 操作(例如 INSERTUPDATEDELETE)和外键级联操作修改的行数。该列在每次重新计算表统计信息时重置。

  • AUTOINC

    下一个要分配的自动递增号码。该值的变化率取决于自动递增号码的请求次数和每次请求的号码数量。

  • REF_COUNT

    当该计数器达到零时,表元数据可以从表缓存中删除。

示例

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 语句来查看该表的列的更多信息,包括数据类型和默认值。