# 26.4.26 信息_SCHEMA INNODB_表统计视图
这INNODB_TABLESTATS
表提供了关于低级状态信息的视图InnoDB
表。MySQL 优化器使用此数据来计算查询时使用哪个索引InnoDB
桌子。此信息来自内存中的数据结构,而不是存储在磁盘上的数据。没有对应的内部InnoDB
系统表。
InnoDB
如果表自上次服务器重新启动后已打开且未超出表缓存,则表将显示在此视图中。此视图中始终显示具有持久统计信息的表。
表统计信息仅更新删除
要么更新
修改索引列的操作。仅修改非索引列的操作不会更新统计信息。
分析表
清除表统计信息并设置STATS_INITIALIZED
列到未初始化
.下次访问该表时会再次收集统计信息。
有关相关使用信息和示例,请参阅第 15.15.3 节,“InnoDB 信息_SCHEMA 模式对象表”.
这INNODB_TABLESTATS
表有这些列:
TABLE_ID
表示可获取统计信息的表的标识符;相同的值
INNODB_TABLES.TABLE_ID
.姓名
表的名称;相同的值
INNODB_TABLES.NAME
.STATS_INITIALIZED
值为
初始化
如果已经收集了统计信息,未初始化
如果不。NUM_ROWS
表中当前估计的行数。每次 DML 操作后更新。如果未提交的事务正在插入到表中或从表中删除,则该值可能不精确。
CLUST_INDEX_SIZE
磁盘上存储聚集索引的页数,该索引保存
InnoDB
表数据按主键顺序排列。如果尚未为表收集统计信息,则此值可能为 null。OTHER_INDEX_SIZE
磁盘上存储表的所有二级索引的页数。如果尚未为表收集统计信息,则此值可能为 null。
MODIFIED_COUNTER
DML操作修改的行数,如
插入
,更新
,删除
,以及外键的级联操作。每次重新计算表统计信息时都会重置此列AUTOINC
为任何基于自动增量的操作发出的下一个数字。的速率
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