的表
表提供有关数据库中表的信息。
列表
表示表统计数据持有缓存值。的information_schema_stats_expiry
系统变量定义缓存表统计到期前的时间段。默认值为86400秒(24小时)。如果没有缓存的统计信息或统计数据已过期,则在查询表统计列时从存储引擎中检索统计信息。要在给定表的任何时间更新缓存值,请使用分析表
.若要始终直接从存储引擎检索最新统计信息,请设置information_schema_stats_expiry
来0
.有关更多信息,请参见第8.2.3节“优化信息_Schema查询”.
如果innodb_read_only
系统变量已启用,分析表
可能会失败,因为它无法更新数据字典中的统计表,它使用InnoDB
.为分析表
即使操作更新表本身也可能发生更新密钥分布,失败的操作(例如,如果是MyISAM
表)。要获取更新的分布统计信息,请设置information_schema_stats_expiry = 0
.
的表
Table有以下列:
table_catalog.
表所属的目录的名称。这个值始终是
def
.TABLE_SCHEMA
表所属的模式(数据库)的名称。
TABLE_NAME
表名。
TABLE_TYPE
基表
对于一个表,看法
为了一个视图,或系统视图
为Information_Schema.
表格的
表
表没有列表临时
表。引擎
表的存储引擎。看到第15章,InnoDB存储引擎,第十六章,替代存储引擎.
对于分区表,
引擎
显示所有分区使用的存储引擎的名称。版本
这一列未使用。随着移除
.frm
在MySQL 8.0中,这个列现在报告一个硬编码的值10
,这是最后一个.frm
文件版本在MySQL 5.7中使用。ROW_FORMAT
行存储格式(
固定的
,动态
,压缩
,冗余
,紧凑的
)。为MyISAM
表,动态
对应什么myisamchk -dvv报告包装
.table_rows.
行的数量。一些存储引擎,如
MyISAM
,储存准确的计数。对于其他存储引擎,例如InnoDB
,此值是近似值,与实际值的差异可能高达40%至50%。在这种情况下,使用选择count(*)
获得准确的计数。table_rows.
是零
为Information_Schema.
表。AVG_ROW_LENGTH
平均行长。
DATA_LENGTH
为
MyISAM
,DATA_LENGTH
数据文件的长度,以字节为单位。为
InnoDB
,DATA_LENGTH
为聚集索引分配的大约空间量,以字节为单位。具体来说,它是聚集索引大小(以页为单位)乘以InnoDB
页面大小。有关其他存储引擎的信息,请参阅本节末尾的注释。
MAX_DATA_LENGTH
为
MyISAM
,MAX_DATA_LENGTH
数据文件的最大长度。这是在给定使用的数据指针大小的情况下,可以存储在表中的数据字节总数。未使用
InnoDB
.有关其他存储引擎的信息,请参阅本节末尾的注释。
index_length.
为
MyISAM
,index_length.
索引文件的长度,以字节为单位。为
InnoDB
,index_length.
为非聚集索引分配的大约空间量,以字节为单位。具体来说,它是非聚集索引大小(以页为单位)乘以InnoDB
页面大小。有关其他存储引擎的信息,请参阅本节末尾的注释。
DATA_FREE
分配但未使用的字节数。
InnoDB
表报告表所属表空间的空闲空间。对于位于共享表空间中的表,这是共享表空间的空闲空间。如果您使用多个表空间,并且表有自己的表空间,那么空闲空间只能用于该表。空闲空间是指完全空闲区段中的字节数减去安全余量。即使空闲空间显示为0,只要不需要分配新区段,就可以插入行。对于NDB集群,
DATA_FREE
显示在磁盘上为磁盘数据表或磁盘碎片分配但未被其使用的空间。(内存中数据资源使用情况由DATA_LENGTH
列)。对于分区表,这个值只是一个估计值,可能不是绝对正确的。在这种情况下,获取此信息的更准确方法是查询
Information_Schema.
分区
表,如本例所示:从information_schema中选择sum (data_free)。分区WHERE TABLE_SCHEMA = 'mydb' AND TABLE_NAME = 'mytable';
有关更多信息,请参见第26.3.21节“Information_schema Partitions表”.
AUTO_INCREMENT
下一个
AUTO_INCREMENT
价值。CREATE_TIME
创建表时。
更新时间
数据文件最后一次更新的时间。对于某些存储引擎,该值为
零
.例如,InnoDB
中存储多个表系统表空间数据文件时间戳不适用。即使有file-per-table模式与各自InnoDB
单独的的.ibd
文件,改变缓冲可以延迟对数据文件的写入,使文件修改时间不同于上次插入、更新或删除的时间。为MyISAM
,使用数据文件的时间戳;但是,在Windows上,时间戳不是通过updates来更新的,所以该值是不准确的。更新时间
显示最后一个的时间戳值更新
,插
,或删除
执行InnoDB
未分区的表格。对于MVCC,时间戳值反映了提交
时间,该时间被认为是最后一次更新时间。当服务器重新启动或从表中逐出时,时间戳不会持久InnoDB
数据字典缓存。CHECK_TIME
最后一次检查表的时间。不是所有的存储引擎都会更新,在这种情况下,这个值总是
零
.为分区
InnoDB
表,CHECK_TIME
总是零
.table_collation.
表默认排序规则。输出没有显式列出表的默认字符集,但是排序规则名以字符集名开头。
校验和
活校验和值(如果有的话)。
CREATE_OPTIONS
附加选项用于
创建表
.CREATE_OPTIONS
表明分区
用于分区表。在MySQL 8.0.16之前,
CREATE_OPTIONS
显示了加密
子句为在每个表的文件表空间中创建的表指定。从MySQL 8.0.16开始,如果表被加密了,或者指定的加密与模式加密不同,它会显示针对每个表文件的表空间的加密子句。对于在一般表空间中创建的表,不显示加密子句。要识别加密的每个表文件和常规表空间,请查询innodb_tablespaces.
加密
柱子。创建表时严格模式禁用后,如果不支持指定的行格式,则使用存储引擎的默认行格式。控件中报告了表的实际行格式
ROW_FORMAT
柱子。CREATE_OPTIONS
显示在中指定的行格式创建表
陈述。当更改表的存储引擎时,表定义中保留不适用于新存储引擎的表选项,以便在必要时将表与之前定义的选项恢复到原始存储引擎。的
CREATE_OPTIONS
列可以显示保留的选项。TABLE_COMMENT
创建表时使用的注释(或关于为什么MySQL不能访问表信息的信息)。
笔记
表信息也可从中获取显示表状态
和显示表
语句。看到第13.7.7.38节,“SHOW TABLE STATUS Statement”,第13.7.7.39节“显示表格声明”.以下语句是等价的:
选择table_name,引擎,版本,row_format,table_rows,avg_row_length,data_length,max_data_lengthdb_name.'和table_name LIKE '野生']显示表状态db_name.(像“野生']
以下语句是等价的:
Select table_name, table_type from information_schema。表table_schema = 'db_name.'和table_name LIKE '野生']显示完整的表db_name.(像“野生']