• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • INNODB_TABLESTATS视图

    INNODB_TABLESTATS表提供了有关InnoDB表的低级状态信息的视图。MySQL优化程序使用此数据来计算查询InnoDB表时使用的索引。此信息来自内存中的数据结构,而不是存储在磁盘上的数据。没有相应的内部InnoDB系统表。

    InnoDB如果表是自上次服务器重新启动以来已打开并且尚未从表缓存中过期,则在此视图中表示这些表。此视图始终表示具有持久统计信息的表。

    表统计信息仅针对DELETEUPDATE修改索引列的操作而更新。仅通过修改非索引列的操作不会更新统计信息。

    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操作修改的行数,如INSERTUPDATEDELETE从外键,也级联操作。每次重新计算表统计信息时,都会重置此列

    • 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
    

    注意

    • 该表主要用于专家级的性能监控,或者在为MySQL开发与性能相关的扩展时有用。
    • 您必须具有PROCESS查询此表的特权。
    • 使用该INFORMATION_SCHEMACOLUMNS表或该SHOW COLUMNS语句参见有关该表的列的其他信息,包括数据类型和默认值。