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

28.3.38 INFORMATION_SCHEMA TABLES 表格

由迪 2024-08-08
133

TABLES 表提供信息 关于数据库中的表。

TABLES 中表示 表统计信息保存缓存的值。information_schema_stats_expiry 系统变量定义缓存表之前的时间段 统计信息过期。默认值为 86400 秒(24 小时)。如果 没有缓存的统计信息或统计信息已过期, 查询表时,从存储引擎中检索统计信息 统计信息列。要随时更新 给定的表,请使用 ANALYZE TABLE。自 始终直接从存储中检索最新的统计信息 引擎,将 information_schema_stats_expiry设置为 。有关详细信息,请参见第 10.2.3 节 “优化 INFORMATION_SCHEMA 查询”。0

注意

如果 innodb_read_only 系统 变量启用,ANALYZE TABLE 可能会失败,因为它无法更新统计信息 数据字典中的表,其中使用 .对于 ANALYZE 更新键分布的 TABLE 操作, 即使操作更新了表本身,也可能发生失败 (例如,如果它是一个表)。自 获取更新的分布统计信息,设置 information_schema_stats_expiry=0InnoDB``MyISAM

TABLES 表包含以下列:

  • TABLE_CATALOG

    表所属的目录的名称。此值 总是 .def

  • TABLE_SCHEMA

    表所属的架构(数据库)的名称。

  • TABLE_NAME

    表的名称。

  • TABLE_TYPE

    BASE TABLE对于表、视图或表。VIEW``SYSTEM VIEW``INFORMATION_SCHEMA

    TABLES 表不列出表。TEMPORARY

  • ENGINE

    表的存储引擎。请参阅第 17 章 “InnoDB 存储引擎第 18 章“备用存储引擎”。

    对于分区表,显示 所有分区使用的存储引擎的名称。ENGINE

  • VERSION

    此列未使用。随着 MySQL 8.0 中文件的删除,本专栏现在 报告硬编码值 ,即 MySQL 中使用的最后一个文件版本 5.7..frm``10``.frm

  • ROW_FORMAT

    行存储格式 (、 、 、 )。对于表,对应于 myisamchk -dvv 报告的内容 如。Fixed``Dynamic``Compressed``Redundant``Compact``MyISAM``Dynamic``Packed

  • TABLE_ROWS

    行数。某些存储引擎(例如 )会存储确切的计数。对于其他 存储引擎,例如 ,此值 是一个近似值,可能与实际值相差如 大约40%至50%。在这种情况下,请使用 以获得准确的计数。MyISAM``InnoDB``SELECT COUNT(*)

    TABLE_ROWS用于表。NULL``INFORMATION_SCHEMA

    对于 InnoDB 表,行计数 只是 SQL 优化中使用的粗略估计。(这是 如果 InnoDB 表是 已分区。

  • 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 Cluster,显示空间 在磁盘上为磁盘数据表分配,但未被磁盘数据表使用,或者 磁盘上的片段。(报告内存中数据资源使用情况 按列。DATA_FREE``DATA_LENGTH

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

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

    有关更多信息,请参见第 28.3.21 节 “INFORMATION_SCHEMA PARTITIONS 表”。

  • AUTO_INCREMENT

    下一个值。AUTO_INCREMENT

  • CREATE_TIME

    创建表的时间。

  • UPDATE_TIME

    上次更新表的时间。对于某些存储引擎, 此值为 。即使使用“每表一个文件”模式 由于每个表都在一个单独的文件中,更改缓冲可能会延迟对数据文件的写入,因此文件修改 时间与上次插入、更新的时间不同,或者 删除。对于 ,数据文件时间戳 被使用;但是,在 Windows 上,时间戳不会通过以下方式更新 更新,因此该值不准确。NULL``InnoDB``.ibd``MyISAM

    UPDATE_TIME显示 的时间戳值 对未分区的表执行的上次 UPDATE、INSERTDELETE。为 MVCC,timestamp 值反映的是 COMMIT 时间,即 考虑了上次更新时间。时间戳不会持久化 当服务器重新启动或表被逐出时 数据字典缓存。InnoDB``InnoDB

  • CHECK_TIME

    上次检查表的时间。并非所有存储引擎 这次更新,在这种情况下,值始终为 。NULL

    对于分区的 InnoDB 表,始终是 。CHECK_TIME``NULL

  • TABLE_COLLATION

    表默认排序规则。输出未显式显示 列出表的默认字符集,但排序规则名称 以字符集名称开头。

  • CHECKSUM

    实时校验和值(如果有)。

  • CREATE_OPTIONS

    与 CREATE 一起使用的额外选项

    CREATE_OPTIONS显示分区表。partitioned

    在 MySQL 8.0.16 之前,显示 为表指定的子句 在 file-per-table 表空间中创建。从 MySQL 8.0.16 开始,它 显示 file-per-table 表空间的加密子句 if 该表已加密,或者如果指定的加密不同 从架构加密。未显示加密子句 用于在常规表空间中创建的表。要识别 加密的 file-per-table 和 general tablespaces,查询 INNODB_TABLESPACES 列。CREATE_OPTIONS``ENCRYPTION``ENCRYPTION

    在禁用严格模式的情况下创建表时, 如果满足以下条件,则使用存储引擎的默认行格式 不支持指定的行格式。实际的行格式 的表在列中报告。 显示行格式 在 CREATE 中指定的TABLE 语句。ROW_FORMAT``CREATE_OPTIONS

    更改表的存储引擎时,表选项 对新存储引擎不适用的,予以保留 在表定义中启用还原表及其 以前定义的原始存储引擎的选项,如果 必要。该色谱柱可能 显示保留的选项。CREATE_OPTIONS

  • TABLE_COMMENT

    创建表时使用的注释(或有关以下内容的信息) 为什么MySQL无法访问表信息)。

笔记

  • 对于 NDB 表,输出 此语句显示 AND 列的适当值,但 AND 列有例外 不采用 BLOB 列 考虑。AVG_ROW_LENGTH``DATA_LENGTH
  • 对于 NDB 表,包括存储在 main 中的数据 仅内存;和列适用于磁盘数据。DATA_LENGTH``MAX_DATA_LENGTH``DATA_FREE
  • 对于NDB群集磁盘数据表,显示分配的空间 用于磁盘数据表或片段的磁盘部分。(内存中 数据资源使用情况由列报告。MAX_DATA_LENGTH``DATA_LENGTH
  • 对于表,、 、 和 值近似于实际值 分配的内存量。分配算法预留 大量内存以减少分配次数 操作。MEMORY``DATA_LENGTH``MAX_DATA_LENGTH``INDEX_LENGTH
  • 对于视图,大多数 TABLES 列 为 0 或 except 表示视图名称,表示创建时间, 并说.NULL``TABLE_NAME``CREATE_TIME``TABLE_COMMENT``VIEW

还可以从 SHOW TABLE STATUSSHOW TABLES 语句中获取表信息。请参见第 15.7.7.38 节“SHOW TABLE STATUS 语句”第 15.7.7.39 节“SHOW TABLES 语句”。以下声明是 等效:

SELECT TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, CHECKSUM, CREATE_OPTIONS, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'db_name' [AND table_name LIKE 'wild'] SHOW TABLE STATUS FROM db_name [LIKE 'wild']

以下语句是等效的:

SELECT TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'db_name' [AND table_name LIKE 'wild'] SHOW FULL TABLES FROM db_name [LIKE 'wild']
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论