Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL SHOW TABLE STATUS的使用

MySQL中SHOW TABLE STATUS的使用及说明

作者:不会程序的JAVA程序媛

这篇文章主要介绍了MySQL中SHOW TABLE STATUS的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

说明

该SQL输出提供了很多关于每个非临时表的信息。

您还可以使用mysqlshow --status db_name命令获取此列表。

如出现类似子句,指示要匹配的表名。

可以使用where子句使用更一般的条件来选择行,此语句还显示有关视图的信息。

语法格式

SHOW TABLE STATUS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]
-- 参数:[FROM db_name] 可选,表示查询哪个数据库下面的表信息。 
-- [LIKE 'pattern'] 可选,表示查询哪些具体的表名。    

输出信息及解释

表名。

表的存储引擎。旧版本中,叫Type。

表的版本号

行存储格式(Fixed,Dynamic,Compressed,Redundant,Compact)。对于MyISAM表,动态对应于myisamchk报告打包的内容。

使用Antelope文件格式时,InnoDB表格式要么是Redundant的,要么是Compact的,要么使用Barracuda文件格式Compressed或Dynamic。

动态行的行长度可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字段。Compressed的行则只在压缩表中存在

表中的行数。一些存储引擎,如MyISAM,存储精确计数。

对于其他存储引擎,如InnoDB,这个值是近似值,并且可能与实际值不同多达40%至50%。

在这种情况下,使用选择count(*)来获取精确计数。

平均每行包括的字节数

对于MyISAM来说,Data_length是数据文件的长度,以字节为单位。

对于InnoDB来说,Data_length是为聚簇索引分配的空间的近似量,以字节为单位。

具体来说,它是聚簇索引大小,在页面中,乘上InnoDB页面大小。

整个表的数据量(单位:字节)

对于MyISAM来说,max_data_length是数据文件的最大长度。

这是可以存储在表中的数据的总数,因为使用了数据指针大小。

对InnoDB来说是没有用的。

对于MyISAM来说,Index_length_是索引文件的长度,以字节为单位。

对于InnoDB来说,Index_length是为非聚簇索引分配的空间的近似量,以字节为单位。

具体来说,它是非聚集索引大小的总和,在页面中乘上InnoDB页面大小。

分配但未使用的字节数。InnoDB表表示表所属的表空间的空闲空间。对于位于共享表空间中的表,这是共享表空间的空闲空间。如果您使用多个表空间,并且表有自己的表空间,那么唯一的空间仅为该表。

Data_free意味着字节数在完全自由范围内减去安全裕度。即使Data_free显示为0,只要不需要分配新的区段,就可能插入行。对于NDB集群,data_free显示磁盘上分配的磁盘数据表或磁盘上的磁盘数据表或片段所分配的空间。(Data_length列表示内存数据资源使用情况)。

对于分区表,此值只是估计值,并且可能不是绝对正确的。在这种情况下获取此信息的方法更准确,就是查询INFORMATION_SCHEMA分区表,如本示例所示:

SELECT SUM(DATA_FREE)
    FROM  INFORMATION_SCHEMA.PARTITIONS
    WHERE TABLE_SCHEMA = 'mydb'
    AND   TABLE_NAME   = 'mytable';

下一个Auto_increment的值

表的创建时间,分区表是NULL

表的最近更新时间。对于某些存储引擎来说,此值为null。

例如,InnoDB在其系统表空间中存储多个表,并且数据文件时间戳不适用。

即使使用file-per-table模式与每个InnoDB表在单独的.ibd文件中,更改缓冲可以将写入延迟到数据文件,因此文件修改时间不同于上次插入、更新或删除时间。

对于MyISAM,使用了数据文件时间戳;但是,在windows上,时间戳不会更新,因此值是不准确的。分区表是NULL。

表上次检查的时间。并非所有存储引擎都更新了这个时间,在这种情况下,值总是空的。

对于分区的InnoDB表,check_time始终为null。

使用 check table 或myisamchk工具检查表的最近时间

表的默认字符集和字符排序规则

如果有的话,则会返回一个实际校验值。

Create_options显示分区表的分区。

当创建strict模式禁用的表时,如果不支持指定行格式,则使用存储引擎的默认行格式。

表中的实际行格式是在row_format列中显示的。Create_options显示了在create表语句中指定的行格式。

更改表的存储引擎时,表定义中保留了不适用于新存储引擎的表选项,以便在必要时启用将表与先前定义的选项还原到原始存储引擎中。Create_options可能显示保留选项。

指表创建时的其他所有选项

创建表时使用的注释(或关于为什么mysql无法访问表信息的信息)

注意

翻译自MySQL官方手册

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文