INNODB_TABLESTATS视图
该INNODB_TABLESTATS
表提供了有关InnoDB
表的低级状态信息的视图。MySQL优化程序使用此数据来计算查询InnoDB
表时使用的索引。此信息来自内存中的数据结构,而不是存储在磁盘上的数据。没有相应的内部InnoDB
系统表。
InnoDB
如果表是自上次服务器重新启动以来已打开并且尚未从表缓存中过期,则在此视图中表示这些表。此视图始终表示具有持久统计信息的表。
表统计信息仅针对DELETE
或UPDATE
修改索引列的操作而更新。仅通过修改非索引列的操作不会更新统计信息。
ANALYZE TABLE
清除表统计信息并将STATS_INITIALIZED
列设置为Uninitialized
。下次访问该表时,将再次收集统计信息。
有关相关用法信息和示例,请参见“ 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
按主键顺序保存表数据。如果尚未收集该表的统计信息,那么此值可能为null。OTHER_INDEX_SIZE
磁盘上存储表的所有辅助索引的页面数。如果尚未收集该表的统计信息,那么此值可能为null。
MODIFIED_COUNTER
由DML操作修改的行数,如
INSERT
,UPDATE
,DELETE
从外键,也级联操作。每次重新计算表统计信息时,都会重置此列AUTOINC
对于任何基于自动增量的操作将发出的下一个数字。
AUTOINC
值更改的速度取决于已请求自动递增编号的次数以及每个请求授予多少编号。REF_COUNT
当此计数器达到零时,可以从表缓存中逐出表元数据。
例
mysql>SELECT *FROM INFORMATION_SCHEMA.INNODB_TABLESTATSwhere 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
语句参见有关该表的列的其他信息,包括数据类型和默认值。