暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的SQL语句 - 数据库管理语句 - SHOW 语句 - SHOW TABLE STATUS 语句

数据库杂货铺 2021-04-19
411
SHOW TABLE STATUS 语句
 
    SHOW TABLE STATUS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]
     
    SHOW TABLE STATUS 的工作方式类似于 SHOW TABLES,提供了关于每个非临时表的大量信息。还可以使用 mysqlshow --status db_name 命令获取此信息清单。LIKE 子句(如果存在)指示要匹配的表名。可以用 WHERE 子句来添加更通用的条件选择行。
     
    此语句还显示有关视图的信息。
     
    SHOW TABLE STATUS 的输出包含以下列:
     
     Name
     
    表的名称。
     
     Engine
     
    表的存储引擎。
     
    对于分区表,引擎显示所有分区使用的存储引擎的名称。
     
     Version
     
    此列未使用。随着 MySQL 8.0 .frm 文件的删除,此列现在报告的硬编码值为 10,这是 MySQL 5.7 中使用的最后一个 .frm 文件版本。
     
     Row_format
     
    行存储格式(FixedDynamicCompressedRedundantCompact)。对于 MyISAM 表,Dynamic 对应于 myisamchk -dvv 报告的 Packed
     
     Rows
     
    行数。某些存储引擎(如 MyISAM)存储精确的计数。其他存储引擎,比如 InnoDB,这个值是一个近似值,可能与实际值相差 40% 50%。在这种情况下,请使用 SELECT COUNT(*) 获得准确的计数。
     
    对于 INFORMATION_SCHEMA 表,Rows 值为 NULL
     
    对于 InnoDB 表,行数只是 SQL 优化中使用的粗略估计。(如果对 InnoDB 表进行分区,也是如此。)
     
     Avg_row_length
     
    平均行长度。
     
     Data_length
     
    对于 MyISAMData_length 是以字节为单位的数据文件长度。
     
    对于 InnoDBData_length 是为聚集索引分配的近似空间大小,以字节为单位。具体来说,它是聚集索引大小(以页为单位)乘以 InnoDB 页大小。
     
     Index_length
     
    对于 MyISAMIndex_length 是索引文件的长度,以字节为单位。
     
    对于 InnoDBIndex_length 是为非聚集索引分配的空间的近似大小,以字节为单位。具体来说,它是非聚集索引大小的总和,以页为单位,乘以 InnoDB 页面大小。
     
     Data_free
     
    已分配但未使用的字节数。
     
    InnoDB 表报告表所属表空间的可用空间。对于位于共享表空间中的表,是共享表空间的可用空间。如果使用多个表空间,并且该表有自己的表空间,则可用空间仅用于该表的表空间。可用空间是指完全可用的字节数减去安全边界。即使可用空间显示为 0,只要不需要分配新的空间,就可以插入新行。
     
    对于 NDB ClusterData_free 显示磁盘上分配给 Disk Data 表或磁盘碎片,但是未使用的空间。(内存中的数据资源使用情况由 Data_length 列报告。)
     
    对于分区表,此值只是一个估计值,可能不是绝对正确的。在这种情况下,获取此信息的更准确方法是查询 INFORMATION_SCHEMA PARTITIONS 表,如下例所示:
     
      SELECT SUM(DATA_FREE)
      FROM INFORMATION_SCHEMA.PARTITIONS
      WHERE TABLE_SCHEMA = 'mydb'
      AND TABLE_NAME = 'mytable';
       
       Auto_increment
       
      下一个 AUTO_INCREMENT 值。
       
       Create_time
       
      创建表的时间。
       
       Update_time
       
      上次更新数据文件的时间。对于某些存储引擎,此值为 NULL。例如,InnoDB 在其系统表空间中存储多个表,不应用数据文件时间戳。即使在独立表空间模式,每个 InnoDB 表都在一个单独的 .ibd 文件中,更改缓冲也会延迟对数据文件的写入,因此文件修改时间与上次插入、更新或删除的时间不同。对于 MyISAM,使用数据文件时间戳;但是,在 Windows 上,时间戳不会在更新数据时更改,因此该值不准确。
       
      Update_time 显示对未分区的 InnoDB 表上一次执行的 UPDATEINSERT DELETE 的时间戳值。对于 MVCC,时间戳值反映 COMMIT 时间,它被认为是最后一次更新时间。重新启动服务器或从 InnoDB 数据字典缓存中清除表时,不会保留时间戳。
       
       Check_time
       
      上次检查表的时间。并不是所有的存储引擎都会更新这个时间,在这种情况下,值保持为 NULL
       
      对于分区的 InnoDB 表,Check_time 始终为 NULL
       
       Collation
       
      表的默认排序规则。输出没有显式列出表默认字符集,但排序规则名称以字符集名称开头。
       
       Checksum
       
      实时校验和值(如果有)。
       
       Create_options
       
      CREATE TABLE 一起使用的额外选项。
       
      对于分区表 Create_options 显示 partitioned
       
      MySQL 8.0.16 之前,Create_options 显示为在独立表空间中创建的表指定的 ENCRYPTION 子句。从 MySQL 8.0.16 开始,如果表是加密的,或者指定的加密与模式加密不同,那么它将为独立表空间显示加密子句。对于在常规表空间中创建的表,不会显示加密子句。要辨别加密的独立表空间和常规表空间,请查询 INNODB_TABLESPACES ENCRYPTION 列。
       
      严格模式禁用的情况下创建表时,如果不支持指定的行格式,则使用存储引擎的默认行格式。表的实际行格式在 Row_format 列中。Create_options 显示 CREATE TABLE 语句中指定的行格式。
       
      更改表的存储引擎时,不适用于新存储引擎的表选项将保留在表定义中,以便在必要时使用以前定义的选项将表还原为原始存储引擎。Create_options 可以显示保留的选项。
       
       Comment
       
      创建表时使用的注释(或有关 MySQL 无法访问表信息的原因的信息)。
       
      说明:
       
      对于 InnoDB 表,SHOW TABLE STATUS 除了表保留的物理大小外,不提供准确的统计信息。行数只是 SQL 优化中使用的粗略估计。
       
      对于 NDB 表,此语句的输出在 Avg_row_length Data_length 列显示近似值,但没有考虑 BLOB 列的情况。
       
      对于 NDB 表,Data_length 仅包括存储在主内存中的数据;Max_data_length Data_free 列适用于 Disk Data
       
      对于 NDB Cluster Disk Data 表,Max_data_length 显示为 Disk Data 表或碎片的磁盘部分分配的空间。(内存中的数据资源使用情况由 Data_length 列展示。)
       
      对于 MEMORY 表,Data_lengthMax_data_length Index_length 值近似于实际分配的内存量。分配算法保留大量内存,以减少分配操作的次数。
       
      对于视图,SHOW TABLE STATUS 显示的大多数列都是 0 NULL,但 Name 显示视图名称,Create_time 表示创建时间,Comment 显示 VIEW
       
      表信息也可以从 INFORMATION_SCHEMA TABLES 表中获得。
       
       
       
      官方网址:
      https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html
       
      文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论