MySQL8 中文参考(一百零四)
28.3.31 The INFORMATION_SCHEMA SCHEMATA Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-schemata-table.html
一个模式是一个数据库,因此SCHEMATA表提供关于数据库的信息。
SCHEMATA表具有以下列:
-
CATALOG_NAME模式所属目录的名称。此值始终为
def。 -
SCHEMA_NAME模式的名称。
-
DEFAULT_CHARACTER_SET_NAME模式默认字符集。
-
DEFAULT_COLLATION_NAME模式默认排序规则。
-
SQL_PATH此值始终为
NULL。 -
DEFAULT_ENCRYPTION模式默认加密。此列在 MySQL 8.0.16 中添加。
模式名称也可以从SHOW DATABASES语句中获取。参见 Section 15.7.7.14, “SHOW DATABASES Statement”。以下语句是等效的:
SELECT SCHEMA_NAME AS `Database`
FROM INFORMATION_SCHEMA.SCHEMATA
[WHERE SCHEMA_NAME LIKE '*wild*']
SHOW DATABASES
[LIKE '*wild*']
除非具有全局SHOW DATABASES权限,否则只能看到具有某种特权的数据库。
注意
因为任何静态全局特权都被视为对所有数据库的特权,任何静态全局特权都使用户能够使用SHOW DATABASES或通过检查INFORMATION_SCHEMA的SCHEMATA表来查看所有数据库名称,除了在数据库级别通过部分撤销限制的数据库。
注意
SCHEMATA_EXTENSIONS表通过提供有关模式选项的信息来扩展SCHEMATA表。
28.3.32 INFORMATION_SCHEMA SCHEMATA_EXTENSIONS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-schemata-extensions-table.html
SCHEMATA_EXTENSIONS 表(自 MySQL 8.0.22 起可用)通过提供有关模式选项的信息来扩充 SCHEMATA 表。
SCHEMATA_EXTENSIONS 表包含以下列:
-
CATALOG_NAME模式所属的目录名称。该值始终为
def。 -
SCHEMA_NAME模式的名称。
-
OPTIONS模式的选项。如果模式是只读的,则值包含
READ ONLY=1。如果模式不是只读的,则不会出现READ ONLY选项。
示例
mysql> ALTER SCHEMA mydb READ ONLY = 1;
mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_EXTENSIONS
WHERE SCHEMA_NAME = 'mydb';
+--------------+-------------+-------------+
| CATALOG_NAME | SCHEMA_NAME | OPTIONS |
+--------------+-------------+-------------+
| def | mydb | READ ONLY=1 |
+--------------+-------------+-------------+
mysql> ALTER SCHEMA mydb READ ONLY = 0;
mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_EXTENSIONS
WHERE SCHEMA_NAME = 'mydb';
+--------------+-------------+---------+
| CATALOG_NAME | SCHEMA_NAME | OPTIONS |
+--------------+-------------+---------+
| def | mydb | |
+--------------+-------------+---------+
注意事项
SCHEMATA_EXTENSIONS是一个非标准的INFORMATION_SCHEMA表。
28.3.33 The INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-schema-privileges-table.html
SCHEMA_PRIVILEGES表提供有关模式(数据库)权限的信息。它从mysql.db系统表中获取其值。
SCHEMA_PRIVILEGES表具有以下列:
-
GRANTEE授予权限的帐户名称,格式为
'*user_name*'@'*host_name*'。 -
TABLE_CATALOG模式所属的目录名称。该值始终为
def。 -
TABLE_SCHEMA模式的名称。
-
PRIVILEGE_TYPE授予的权限。该值可以是在模式级别授予的任何权限;请参阅第 15.7.1.6 节,“GRANT 语句”。每行列出一个权限,因此每个受让人持有的模式权限都有一行。
-
IS_GRANTABLE如果用户拥有
GRANT OPTION权限,则为YES,否则为NO。输出不会将GRANT OPTION列为PRIVILEGE_TYPE='GRANT OPTION'的单独行。
注意
SCHEMA_PRIVILEGES是一个非标准的INFORMATION_SCHEMA表。
以下语句不等价:
SELECT ... FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
SHOW GRANTS ...
28.3.34 The INFORMATION_SCHEMA STATISTICS Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-statistics-table.html
STATISTICS表提供有关表索引的信息。
STATISTICS中表示表统计信息的列保存了缓存值。information_schema_stats_expiry系统变量定义了缓存表统计信息过期之前的时间段。默认值为 86400 秒(24 小时)。如果没有缓存的统计信息或统计信息已过期,则在查询表统计信息列时从存储引擎中检索统计信息。要随时更新给定表的缓存值,请使用ANALYZE TABLE。要始终直接从存储引擎中检索最新的统计信息,请设置information_schema_stats_expiry=0。有关更多信息,请参见 Section 10.2.3,“优化 INFORMATION_SCHEMA 查询”。
注意
如果启用了innodb_read_only系统变量,则可能因为无法更新使用InnoDB的数据字典中的统计信息表而导致ANALYZE TABLE失败。即使操作更新了表本身(例如,如果是MyISAM表),对更新键分布的ANALYZE TABLE操作也可能导致失败。要获取更新后的分布统计信息,请设置information_schema_stats_expiry=0。
STATISTICS表具有以下列:
-
TABLE_CATALOG包含索引的表所属的目录的名称。此值始终为
def。 -
TABLE_SCHEMA包含索引的表所属的模式(数据库)的名称。
-
TABLE_NAME包含索引的表的名称。
-
NON_UNIQUE如果索引不能包含重复项,则为 0,如果可以则为 1。
-
INDEX_SCHEMA索引所属的模式(数据库)的名称。
-
INDEX_NAME索引的名称。如果索引是主键,则名称始终为
PRIMARY。 -
SEQ_IN_INDEX索引中的列序号,从 1 开始。
-
COLUMN_NAME列名。另请参阅
EXPRESSION列的描述。 -
COLLATION列在索引中的排序方式。这可以是
A(升序),D(降序)或NULL(未排序)。 -
CARDINALITY索引中唯一值的估计数量。要更新此数字,请运行
ANALYZE TABLE或(对于MyISAM表)myisamchk -a。CARDINALITY是基于存储为整数的统计数据计算的,因此即使对于小表,该值也不一定是精确的。基数越高,MySQL 在执行连接时使用索引的可能性就越大。 -
SUB_PART索引前缀。也就是,如果列仅部分索引,则索引字符数,如果整个列被索引,则为
NULL。注意
前缀限制以字节为单位。但是,在
CREATE TABLE,ALTER TABLE和CREATE INDEX语句中的索引规范中,对于非二进制字符串类型(CHAR,VARCHAR,TEXT),前缀长度被解释为多字节字符集的字符数,对于二进制字符串类型(BINARY,VARBINARY,BLOB),前缀长度以字节为单位。在为使用多字节字符集的非二进制字符串列指定前缀长度时,请考虑这一点。有关索引前缀的其他信息,请参见第 10.3.5 节,“列索引”和第 15.1.15 节,“CREATE INDEX Statement”。
-
PACKED指示键如何打包。如果不是,则为
NULL。 -
NULLABLE包含
YES,如果列可能包含NULL值,''如果不包含。 -
INDEX_TYPE使用的索引方法(
BTREE,FULLTEXT,HASH,RTREE)。 -
COMMENT关于索引的信息,未在其自己的列中描述,例如如果索引已禁用,则为
disabled。 -
INDEX_COMMENT创建索引时使用
COMMENT属性提供的索引的任何注释。 -
IS_VISIBLE索引是否对优化器可见。请参见第 10.3.12 节,“不可见索引”。
-
EXPRESSIONMySQL 8.0.13 及更高版本支持功能键部分(参见功能键部分),这影响
COLUMN_NAME和EXPRESSION列:-
对于非功能键部分,
COLUMN_NAME指示由键部分索引的列,EXPRESSION为NULL。 -
对于功能键部分,
COLUMN_NAME列为NULL,而EXPRESSION表示键部分的表达式。
-
注意
- 没有用于索引的标准
INFORMATION_SCHEMA表。MySQL 列列表类似于 SQL Server 2000 返回的sp_statistics,只是QUALIFIER和OWNER分别替换为CATALOG和SCHEMA。
表索引的信息也可以从SHOW INDEX语句中获取。请参见第 15.7.7.22 节,“SHOW INDEX Statement”。以下语句是等效的:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = '*tbl_name*'
AND table_schema = '*db_name*'
SHOW INDEX
FROM *tbl_name*
FROM *db_name*
在 MySQL 8.0.30 及更高版本中,默认情况下,此表中显示有关生成的不可见主键列的信息。您可以通过设置show_gipk_in_create_table_and_information_schema = OFF来隐藏此类信息。有关更多信息,请参见第 15.1.20.11 节,“生成的不可见主键”。
28.3.35 INFORMATION_SCHEMA ST_GEOMETRY_COLUMNS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-st-geometry-columns-table.html
ST_GEOMETRY_COLUMNS 表提供关于存储空间数据的表列的信息。此表基于 SQL/MM(ISO/IEC 13249-3)标准,并带有如下扩展。MySQL 将ST_GEOMETRY_COLUMNS 实现为INFORMATION_SCHEMA COLUMNS 表上的视图。
ST_GEOMETRY_COLUMNS 表包含以下列:
-
TABLE_CATALOG包含列的表所属的目录的名称。此值始终为
def。 -
TABLE_SCHEMA包含列的表所属的模式(数据库)的名称。
-
TABLE_NAME包含列的表的名称。
-
COLUMN_NAME列的名称。
-
SRS_NAME空间参考系统(SRS)名称。
-
SRS_ID空间参考系统 ID(SRID)。
-
GEOMETRY_TYPE_NAME列数据类型。允许的值为:
geometry、point、linestring、polygon、multipoint、multilinestring、multipolygon、geometrycollection。此列是 MySQL 对标准的扩展。
28.3.36 INFORMATION_SCHEMA ST_SPATIAL_REFERENCE_SYSTEMS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-st-spatial-reference-systems-table.html
ST_SPATIAL_REFERENCE_SYSTEMS 表提供有关可用空间数据的空间参考系统(SRS)的信息。此表基于 SQL/MM(ISO/IEC 13249-3)标准。
ST_SPATIAL_REFERENCE_SYSTEMS 表中的条目基于 European Petroleum Survey Group(EPSG)数据集,除了对应于 MySQL 中使用的特殊 SRS 的 SRID 0,该 SRS 表示一个无限的平坦笛卡尔平面,其轴没有分配单位。有关 SRS 的其他信息,请参见 Section 13.4.5, “Spatial Reference System Support”。
ST_SPATIAL_REFERENCE_SYSTEMS 表具有以下列:
-
SRS_NAME空间参考系统名称。此值是唯一的。
-
SRS_ID空间参考系统数值 ID。此值是唯一的。
SRS_ID值代表与几何值的 SRID 相同类型的值,或作为空间函数的 SRID 参数传递。SRID 0(无单位的笛卡尔平面)是特殊的。它始终是合法的空间参考系统 ID,并可用于依赖于 SRID 值的空间数据的任何计算中。 -
ORGANIZATION定义了空间参考系统基础坐标系的组织名称。
-
ORGANIZATION_COORDSYS_ID组织定义的空间参考系统的数值 ID。
-
DEFINITION空间参考系统定义。
DEFINITION值是 WKT 值,表示如 Open Geospatial Consortium 文档 OGC 12-063r5 中指定的。当 GIS 函数需要定义时,会按需解析 SRS 定义。解析的定义存储在数据字典缓存中,以便重用并避免为每个需要 SRS 信息的语句产生解析开销。
-
DESCRIPTION空间参考系统描述。
注意
SRS_NAME、ORGANIZATION、ORGANIZATION_COORDSYS_ID和DESCRIPTION列包含可能对用户感兴趣的信息,但它们不被 MySQL 使用。
示例
mysql> SELECT * FROM ST_SPATIAL_REFERENCE_SYSTEMS
WHERE SRS_ID = 4326\G
*************************** 1\. row ***************************
SRS_NAME: WGS 84
SRS_ID: 4326
ORGANIZATION: EPSG
ORGANIZATION_COORDSYS_ID: 4326
DEFINITION: GEOGCS["WGS 84",DATUM["World Geodetic System 1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
UNIT["degree",0.017453292519943278,
AUTHORITY["EPSG","9122"]],
AXIS["Lat",NORTH],AXIS["Long",EAST],
AUTHORITY["EPSG","4326"]]
DESCRIPTION:
本条目描述了用于 GPS 系统的 SRS。它具有名称(SRS_NAME)为 WGS 84 和 ID(SRS_ID)为 4326,这是欧洲石油调查组(EPSG)使用的 ID。
投影和地理 SRS 的DEFINITION值分别以PROJCS和GEOGCS开头。SRID 0 的定义是特殊的,并且具有空的DEFINITION值。以下查询根据DEFINITION值确定ST_SPATIAL_REFERENCE_SYSTEMS表中有多少条目对应于投影、地理和其他 SRS:
mysql> SELECT
COUNT(*),
CASE LEFT(DEFINITION, 6)
WHEN 'PROJCS' THEN 'Projected'
WHEN 'GEOGCS' THEN 'Geographic'
ELSE 'Other'
END AS SRS_TYPE
FROM INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS
GROUP BY SRS_TYPE;
+----------+------------+
| COUNT(*) | SRS_TYPE |
+----------+------------+
| 1 | Other |
| 4668 | Projected |
| 483 | Geographic |
+----------+------------+
为了使存储在数据字典中的 SRS 条目可以进行操作,MySQL 提供了以下 SQL 语句:
-
创建空间参考系统:参见第 15.1.19 节,“创建空间参考系统语句”。该语句的描述包括有关 SRS 组件的附加信息。 -
删除空间参考系统:参见第 15.1.31 节,“删除空间参考系统语句”。
28.3.37 信息模式 ST_UNITS_OF_MEASURE 表
dev.mysql.com/doc/refman/8.0/en/information-schema-st-units-of-measure-table.html
ST_UNITS_OF_MEASURE 表(自 MySQL 8.0.14 起可用)提供了关于 ST_Distance() 函数可接受单位的信息。
ST_UNITS_OF_MEASURE 表包含以下列:
-
UNIT_NAME单位的名称。
-
UNIT_TYPE单位类型(例如,
线性)。 -
CONVERSION_FACTOR用于内部计算的转换因子。
-
DESCRIPTION单位的描述。
28.3.38 The INFORMATION_SCHEMA TABLES Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html
TABLES表提供有关��据库中表的信息。
TABLES中表示表统计信息的列保存了缓存值。information_schema_stats_expiry系统变量定义了缓存表统计信息过期之前的时间段。默认值为 86400 秒(24 小时)。如果没有缓存统计信息或统计信息已过期,在查询表统计信息列时,将从存储引擎中检索统计信息。要随时更新给定表的缓存值,请使用ANALYZE TABLE语句。要始终直接从存储引擎中检索最新统计信息,请将information_schema_stats_expiry设置为0。更多信息,请参见Section 10.2.3, “Optimizing INFORMATION_SCHEMA Queries”。
注意
如果启用了innodb_read_only系统变量,则ANALYZE TABLE可能会失败,因为它无法更新使用InnoDB的数据字典中的统计表。对于更新键分布的ANALYZE TABLE操作,即使操作更新了表本身(例如,如果它是MyISAM表),也可能会发生失败。要获取更新后的分布统计信息,请将information_schema_stats_expiry=0。
TABLES表具有以下列:
-
TABLE_CATALOG表所属的目录名称。该值始终为
def。 -
TABLE_SCHEMA表所属的模式(数据库)的名称。
-
TABLE_NAME表的名称。
-
TABLE_TYPE表的
BASE TABLE,视图的VIEW,或INFORMATION_SCHEMA表的SYSTEM VIEW。TABLES表不列出TEMPORARY表。 -
ENGINE表的存储引擎。请参阅Chapter 17, The InnoDB Storage Engine,以及Chapter 18, Alternative Storage Engines。
对于分区表,
ENGINE显示所有分区使用的存储引擎的名称。 -
VERSION此列未使用。随着 MySQL 8.0 中
.frm文件的移除,此列现在报告一个硬编码值10,这是 MySQL 5.7 中使用的最后一个.frm文件版本。 -
ROW_FORMAT行存储格式(
Fixed,Dynamic,Compressed,Redundant,Compact)。对于MyISAM表,Dynamic对应于myisamchk -dvv报告的Packed。 -
TABLE_ROWS行数。一些存储引擎,如
MyISAM,存储确切的计数。对于其他存储引擎,如InnoDB,这个值是一个近似值,可能与实际值相差 40%至 50%。在这种情况下,使用SELECT COUNT(*)来获得准确的计数。对于
INFORMATION_SCHEMA表,TABLE_ROWS为NULL。对于
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列报告。)对于分区表,此值仅为估计值,可能不完全正确。在这种情况下,获取此信息的更准确方法是查询
INFORMATION_SCHEMAPARTITIONS表,如下例所示:SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'mydb' AND TABLE_NAME = 'mytable';更多信息,请参见 Section 28.3.21, “The INFORMATION_SCHEMA PARTITIONS Table”。
-
AUTO_INCREMENT下一个
AUTO_INCREMENT值。 -
CREATE_TIME表创建的时间。
-
UPDATE_TIME表上次更新的时间。对于某些存储引擎,此值为
NULL。即使使用每个InnoDB表在单独的.ibd文件中的 file-per-table 模式,change buffering 也可能延迟对数据文件的写入,因此文件修改时间与最后插入、更新或删除的时间不同。对于MyISAM,使用数据文件时间戳;但在 Windows 上,时间戳不会被更新,因此值不准确。UPDATE_TIME显示了对未分区的InnoDB表执行的最后一次UPDATE、INSERT或DELETE的时间戳值。对于 MVCC,时间戳值反映了COMMIT时间,被视为最后更新时间。当服务器重新启动或表从InnoDB数据字典缓存中删除时,时间戳不会被持久化。 -
CHECK_TIME上次检查表的时间。并非所有存储引擎都会更新此时间,如果不更新,则值始终为
NULL。对于分区的
InnoDB表,CHECK_TIME始终为NULL。 -
TABLE_COLLATION表的默认排序规则。输出中没有明确列出表的默认字符集,但排序规则名称以字符集名称开头。
-
CHECKSUM活动校验和值(如果有)。
-
CREATE_OPTIONS与
CREATE TABLE一起使用的额外选项。CREATE_OPTIONS显示为分区表。在 MySQL 8.0.16 之前,
CREATE_OPTIONS显示了为在每个文件表空间中创建的表指定的ENCRYPTION子句。从 MySQL 8.0.16 开始,如果表已加密或指定的加密与模式加密不同,则显示每个文件表空间的加密子句。对于在一般表空间中创建的表,不显示加密子句。要识别加密的每个文件表空间和一般表空间,请查询INNODB_TABLESPACES的ENCRYPTION列。在创建表时禁用 严格模式,如果指定的行格式不受支持,则使用存储引擎的默认行格式。表的实际行格式在
ROW_FORMAT列中报告。CREATE_OPTIONS显示在CREATE TABLE语句中指定的行格式。当更改表的存储引擎时,不适用于新存储引擎的表选项保留在表定义中,以便在必要时将具有先前定义选项的表还原为原始存储引擎。
CREATE_OPTIONS列可能显示保留的选项。 -
TABLE_COMMENT创建表时使用的注释(或者为什么 MySQL 无法访问表信息的信息)。
注意
-
对于
NDB表,此语句的输出显示AVG_ROW_LENGTH和DATA_LENGTH列的适当值,但不考虑BLOB列。 -
对于
NDB表,DATA_LENGTH仅包括存储在主内存中的数据;MAX_DATA_LENGTH和DATA_FREE列适用于磁盘数据。 -
对于 NDB 集群磁盘数据表,
MAX_DATA_LENGTH显示为磁盘数据表或片段的磁盘部分分配的空间。(内存数据资源使用由DATA_LENGTH列报告。) -
对于
MEMORY表,DATA_LENGTH、MAX_DATA_LENGTH和INDEX_LENGTH的值近似于实际分配的内存量。分配算法会大量保留内存以减少分配操作的数量。 -
对于视图,大多数
TABLES列为 0 或NULL,除了TABLE_NAME指示视图名称,CREATE_TIME指示创建时间,TABLE_COMMENT显示VIEW。
表信息也可以通过SHOW TABLE STATUS和SHOW TABLES语句获取。请参阅 Section 15.7.7.38, “SHOW TABLE STATUS Statement”和 Section 15.7.7.39, “SHOW TABLES Statement”。以下语句是等效的:
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*']
28.3.39 INFORMATION_SCHEMA TABLES_EXTENSIONS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-tables-extensions-table.html
TABLES_EXTENSIONS 表(自 MySQL 8.0.21 起可用)提供有关为主要和次要存储引擎定义的表属性的信息。
注意
TABLES_EXTENSIONS 表保留供将来使用。
TABLES_EXTENSIONS 表具有以下列:
-
TABLE_CATALOG表所属目录的名称。此值始终为
def。 -
TABLE_SCHEMA表所属模式(数据库)的名称。
-
TABLE_NAME表的名称。
-
ENGINE_ATTRIBUTE为主要存储引擎定义的表属性。保留供将来使用。
-
SECONDARY_ENGINE_ATTRIBUTE为次要存储引擎定义的表属性。保留供将来使用。
28.3.40 INFORMATION_SCHEMA TABLESPACES表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-tablespaces-table.html
此表未被使用。它已被弃用;预计在未来的 MySQL 版本中将被移除。其他INFORMATION_SCHEMA表可能提供相关信息:
-
对于
NDB,INFORMATION_SCHEMA中的FILES表提供与表空间相关的信息。 -
对于
InnoDB,INFORMATION_SCHEMA中的INNODB_TABLESPACES和INNODB_DATAFILES表提供表空间元数据。
28.3.41 The INFORMATION_SCHEMA TABLESPACES_EXTENSIONS Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-tablespaces-extensions-table.html
TABLESPACES_EXTENSIONS 表(自 MySQL 8.0.21 起可用)提供了关于为主要存储引擎定义的表空间属性的信息。
注意
TABLESPACES_EXTENSIONS 表保留供将来使用。
TABLESPACES_EXTENSIONS 表具有以下列:
-
TABLESPACE_NAME表空间的名称。
-
ENGINE_ATTRIBUTE为主要存储引擎定义的表空间属性。保留供将来使用。
28.3.42 信息模式表约束表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-table-constraints-table.html
TABLE_CONSTRAINTS表描述了哪些表具有约束。
TABLE_CONSTRAINTS表具有以下列:
-
CONSTRAINT_CATALOG约束所属的目录的名称。此值始终为
def。 -
CONSTRAINT_SCHEMA约束所属的模式(数据库)的名称。
-
CONSTRAINT_NAME约束的名称。
-
TABLE_SCHEMA表所属的模式(数据库)的名称。
-
TABLE_NAME表的名称。
-
CONSTRAINT_TYPE约束的类型。该值可以是
UNIQUE、PRIMARY KEY、FOREIGN KEY,或者(从 MySQL 8.0.16 开始)CHECK。这是一个CHAR(而不是ENUM输出的Key_name列中获得的信息大致相同,当Non_unique列为0时。 -
ENFORCED对于
CHECK约束,该值为YES或NO,表示约束是否被强制执行。对于其他约束,该值始终为YES。此列在 MySQL 8.0.16 中添加。
28.3.43 INFORMATION_SCHEMA TABLE_CONSTRAINTS_EXTENSIONS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-table-constraints-extensions-table.html
TABLE_CONSTRAINTS_EXTENSIONS 表(自 MySQL 8.0.21 起可用)提供有关为主要和辅助存储引擎定义的表约束属性的信息。
注意
TABLE_CONSTRAINTS_EXTENSIONS 表保留供将来使用。
TABLE_CONSTRAINTS_EXTENSIONS 表包含以下列:
-
CONSTRAINT_CATALOG表所属目录的名称。
-
CONSTRAINT_SCHEMA表所属模式(数据库)的名称。
-
CONSTRAINT_NAME约束的名称。
-
TABLE_NAME表的名称。
-
ENGINE_ATTRIBUTE为主要存储引擎定义的约束属性。保留供将来使用。
-
SECONDARY_ENGINE_ATTRIBUTE为辅助存储引擎定义的约束属性。保留供将来使用。
28.3.44 The INFORMATION_SCHEMA TABLE_PRIVILEGES Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-table-privileges-table.html
TABLE_PRIVILEGES表提供有关表特权的信息。它从mysql.tables_priv系统表中获取其值。
TABLE_PRIVILEGES表具有以下列:
-
GRANTEE授予特权的帐户名称,格式为
'*user_name*'@'*host_name*'。 -
TABLE_CATALOG表所属目录的名称。该值始终为
def。 -
TABLE_SCHEMA表所属模式(数据库)的名称。
-
TABLE_NAME表的名称。
-
PRIVILEGE_TYPE授予的特权。该值可以是可以在表级别授予的任何特权;参见第 15.7.1.6 节,“GRANT 语句”。每行列出一个特权,因此每个受让人持有的表特权都有一行。
-
IS_GRANTABLE如果用户具有
GRANT OPTION特权,则为YES,否则为NO。输出不会将GRANT OPTION列为具有PRIVILEGE_TYPE='GRANT OPTION'的单独行。
注意事项
TABLE_PRIVILEGES是一个非标准的INFORMATION_SCHEMA表。
以下语句不等价:
SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
SHOW GRANTS ...
28.3.45 信息模式 TRIGGERS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-triggers-table.html
TRIGGERS表提供有关触发器的信息。要查看有关表格触发器的信息,您必须对表格具有TRIGGER权限。
TRIGGERS表具有以下列:
-
TRIGGER_CATALOG触发器所属的目录名称。此值始终为
def。 -
TRIGGER_SCHEMA触发器所属的模式(数据库)的名称。
-
TRIGGER_NAME触发器的名称。
-
EVENT_MANIPULATION触发器事件。这是触发器激活的相关表格上的操作类型。值为
INSERT(插入了一行),DELETE(删除了一行)或UPDATE(修改了一行)。 -
EVENT_OBJECT_CATALOG,EVENT_OBJECT_SCHEMA和EVENT_OBJECT_TABLE如第 27.3 节,“使用触发器”中所述,每个触发器都与一个表格关联。这些列指示此表格所在的目录和模式(数据库),以及表格名称。
EVENT_OBJECT_CATALOG值始终为def。 -
ACTION_ORDER触发器动作在相同表格上具有相同
EVENT_MANIPULATION和ACTION_TIMING值的触发器列表中的序数位置。 -
ACTION_CONDITION此值始终为
NULL。 -
ACTION_STATEMENT触发器主体;即触发器激活时执行的语句。此文本使用 UTF-8 编码。
-
ACTION_ORIENTATION此值始终为
ROW。 -
ACTION_TIMING触发器在触发事件之前或之后激活。值为
BEFORE或AFTER。 -
ACTION_REFERENCE_OLD_TABLE此值始终为
NULL。 -
ACTION_REFERENCE_NEW_TABLE此值始终为
NULL。 -
ACTION_REFERENCE_OLD_ROW和ACTION_REFERENCE_NEW_ROW旧列标识符和新列标识符。
ACTION_REFERENCE_OLD_ROW值始终为OLD,ACTION_REFERENCE_NEW_ROW值始终为NEW。 -
CREATED触发器创建时的日期和时间。这是一个
TIMESTAMP(2)值(带有百分之一秒的小数部分)。 -
SQL_MODE触发器创建时生效的 SQL 模式,以及触发器执行的模式。有关允许的值,请参见第 7.1.11 节,“服务器 SQL 模式”。
-
DEFINERDEFINER子句中命名的帐户(通常是创建触发器的用户),格式为'*user_name*'@'*host_name*'。 -
CHARACTER_SET_CLIENT触发器创建时的
character_set_client系统变量的会话值。 -
COLLATION_CONNECTION触发器创建时
collation_connection系统变量的会话值。 -
DATABASE_COLLATION触发器关联的数据库的排序规则。
示例
以下示例使用了 Section 27.3, “Using Triggers”中定义的ins_sum触发器:
mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA='test' AND TRIGGER_NAME='ins_sum'\G
*************************** 1\. row ***************************
TRIGGER_CATALOG: def
TRIGGER_SCHEMA: test
TRIGGER_NAME: ins_sum
EVENT_MANIPULATION: INSERT
EVENT_OBJECT_CATALOG: def
EVENT_OBJECT_SCHEMA: test
EVENT_OBJECT_TABLE: account
ACTION_ORDER: 1
ACTION_CONDITION: NULL
ACTION_STATEMENT: SET @sum = @sum + NEW.amount
ACTION_ORIENTATION: ROW
ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
ACTION_REFERENCE_OLD_ROW: OLD
ACTION_REFERENCE_NEW_ROW: NEW
CREATED: 2018-08-08 10:10:12.61
SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
DEFINER: me@localhost
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4_0900_ai_ci
DATABASE_COLLATION: utf8mb4_0900_ai_ci
触发器信息也可以通过SHOW TRIGGERS语句获取。请参阅 Section 15.7.7.40, “SHOW TRIGGERS Statement”。
28.3.46 INFORMATION_SCHEMA USER_ATTRIBUTES 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-user-attributes-table.html
USER_ATTRIBUTES表(自 MySQL 8.0.21 起可用)提供有关用户评论和用户属性的信息。它从mysql.user系统表中获取其值。
USER_ATTRIBUTES表具有以下列:
-
USER适用于
ATTRIBUTE列值的帐户的用户名部分。 -
HOST适用于
ATTRIBUTE列值的帐户的主机名部分。 -
ATTRIBUTE属于由
USER和HOST列指定的帐户的用户评论、用户属性或两者。该值以 JSON 对象表示。属性的显示方式与使用带有ATTRIBUTE或COMMENT选项的CREATE USER和ALTER USER语句设置的方式完全相同。评论显示为具有comment作为键的键值对。有关更多信息和示例,请参阅CREATE USER Comment and Attribute Options。
注意
-
USER_ATTRIBUTES是一个非标准的INFORMATION_SCHEMA表。 -
要仅获取给定用户的用户评论作为未引用字符串,您可以使用以下查询:
mysql> SELECT ATTRIBUTE->>"$.comment" AS Comment -> FROM INFORMATION_SCHEMA.USER_ATTRIBUTES -> WHERE USER='bill' AND HOST='localhost'; +-----------+ | Comment | +-----------+ | A comment | +-----------+同样,您可以使用其键获取给定用户属性的未引用值。
-
在 MySQL 8.0.22 之前,任何人都可以访问
USER_ATTRIBUTES的内容。从 MySQL 8.0.22 开始,可以按以下方式访问USER_ATTRIBUTES的内容:-
如果:
-
当前线程是一个复制线程。
-
访问控制系统尚未初始化(例如,服务器是使用
--skip-grant-tables选项启动的)。 -
当前经过身份验证的帐户具有
CREATE USER和SYSTEM_USER权限。
-
-
否则,当前经过身份验证的账户可以看到该账户的行。此外,如果该账户具有
CREATE USER权限但没有SYSTEM_USER权限,它可以看到所有其他没有SYSTEM_USER权限的账户的行。
-
有关指定账户注释和属性的更多信息,请参阅第 15.7.1.3 节,“CREATE USER Statement”。
28.3.47 INFORMATION_SCHEMA USER_PRIVILEGES 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-user-privileges-table.html
USER_PRIVILEGES 表提供有关全局权限的信息。它的值来自于 mysql.user 系统表。
USER_PRIVILEGES 表包含以下列:
-
GRANTEE被授予权限的帐户名称,格式为
'*user_name*'@'*host_name*'。 -
TABLE_CATALOG目录的名称。该值始终为
def。 -
PRIVILEGE_TYPE授予的权限。该值可以是在全局级别授予的任何权限;请参阅 Section 15.7.1.6, “GRANT Statement”。每行列出一个权限,因此每个被授予权限的受让人都有一行。
-
IS_GRANTABLE如果用户具有
GRANT OPTION权限,则为YES,否则为NO。输出不会将GRANT OPTION列为具有PRIVILEGE_TYPE='GRANT OPTION'的单独行。
注意
USER_PRIVILEGES是一个非标准的INFORMATION_SCHEMA表。
以下语句不等价:
SELECT ... FROM INFORMATION_SCHEMA.USER_PRIVILEGES
SHOW GRANTS ...
28.3.48 The INFORMATION_SCHEMA VIEWS Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-views-table.html
VIEWS 表提供有关数据库中视图的信息。您必须具有 SHOW VIEW 权限才能访问此表。
VIEWS 表包含以下列:
-
TABLE_CATALOG视图所属目录的名称。该值始终为
def。 -
TABLE_SCHEMA视图所属模式(数据库)的名称。
-
TABLE_NAME视图的名称。
-
VIEW_DEFINITION提供视图定义的
SELECT语句。该列包含SHOW CREATE VIEW生成的Create Table列中的大部分内容。跳过SELECT前的单词和跳过WITH CHECK OPTION前的单词。假设原始语句为:CREATE VIEW v AS SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION;然后视图定义如下:
SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 -
CHECK_OPTIONCHECK_OPTION属性的值。该值为NONE、CASCADE或LOCAL中的一个。 -
IS_UPDATABLEMySQL 在
CREATE VIEW时设置一个标志,称为视图可更新性标志。如果视图可以进行UPDATE和DELETE(以及类似操作),则该标志设置为YES(true)。否则,该标志设置为NO(false)。VIEWS表中的IS_UPDATABLE列显示了该标志的状态。这意味着服务器始终知道视图是否可更新。如果视图不可更新,则诸如
UPDATE、DELETE和INSERT等语句是非法的并将被拒绝。(即使视图是可更新的,也可能无法向其插入数据;有关详细信息,请参阅 Section 27.5.3, “Updatable and Insertable Views”。) -
DEFINER创建视图的用户帐户,格式为
'*user_name*'@'*host_name*'。 -
SECURITY_TYPE视图的
SQL SECURITY特性。该值为DEFINER或INVOKER中的一个。 -
CHARACTER_SET_CLIENT视图创建时
character_set_client系统变量的会话值。 -
COLLATION_CONNECTION视图创建时
collation_connection系统变量的会话值。
注意事项
MySQL 允许不同的sql_mode设置告诉服务器支持的 SQL 语法类型。例如,您可以使用ANSI SQL 模式来确保 MySQL 正确解释标准 SQL 连接运算符,双竖线(||),在您的查询中。如果您创建一个连接项目的视图,您可能担心将sql_mode设置更改为与ANSI不同的值会导致视图无效。但事实并非如此。无论您如何编写视图定义,MySQL 始终以相同的方式存储它,即规范形式。以下是一个示例,显示服务器如何将双竖线连接运算符更改为CONCAT()函数:
mysql> SET sql_mode = 'ANSI';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE VIEW test.v AS SELECT 'a' || 'b' as col1;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';
+----------------------------------+
| VIEW_DEFINITION |
+----------------------------------+
| select concat('a','b') AS `col1` |
+----------------------------------+
1 row in set (0.00 sec)
将视图定义存储为规范形式的优势在于,稍后对sql_mode值的更改不会影响视图的结果。然而,另一个结果是,服务器会剥离SELECT之前的注释。
28.3.49 The INFORMATION_SCHEMA VIEW_ROUTINE_USAGE Table
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-view-routine-usage-table.html
VIEW_ROUTINE_USAGE 表(自 MySQL 8.0.13 起可用)提供有关视图定义中使用的存储函数的信息。该表不列出有关内置(本机)函数或在定义中使用的可加载函数的信息。
您只能查看您拥有某些权限的视图信息,以及您拥有某些权限的函数信息。
VIEW_ROUTINE_USAGE 表具有以下列:
-
TABLE_CATALOG视图所属的目录的名称。此值始终为
def。 -
TABLE_SCHEMA视图所属的模式(数据库)的名称。
-
TABLE_NAME视图的名称。
-
SPECIFIC_CATALOG视图定义中使用的函数所属的目录名称。此值始终为
def。 -
SPECIFIC_SCHEMA视图定义中使用的函数所属的模式(数据库)的名称。
-
SPECIFIC_NAME视图定义中使用的函数的名称。
28.3.50 信息模式 VIEW_TABLE_USAGE 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-view-table-usage-table.html
VIEW_TABLE_USAGE 表(自 MySQL 8.0.13 起可用)提供了关于视图定义中使用的表和视图的信息。
您只能查看您拥有某些权限的视图信息,以及您拥有某些权限的表信息。
VIEW_TABLE_USAGE 表包含以下列:
-
VIEW_CATALOG视图所属的目录的名称。该值始终为
def。 -
VIEW_SCHEMA视图所属的模式(数据库)的名称。
-
VIEW_NAME视图的名称。
-
TABLE_CATALOG视图定义中使用的表或视图所属的目录名称。该值始终为
def。 -
TABLE_SCHEMA视图定义中使用的表或视图所属的模式(数据库)的名称。
-
TABLE_NAME视图定义中使用的表或视图的名称。
28.4 INFORMATION_SCHEMA InnoDB 表
原文:
dev.mysql.com/doc/refman/8.0/en/innodb-information-schema-tables.html
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
28.4.5 INFORMATION_SCHEMA INNODB_CACHED_INDEXES 表
28.4.6 INFORMATION_SCHEMA INNODB_CMP 和 INNODB_CMP_RESET 表
28.4.7 INFORMATION_SCHEMA INNODB_CMPMEM 和 INNODB_CMPMEM_RESET 表
28.4.8 INFORMATION_SCHEMA INNODB_CMP_PER_INDEX 和 INNODB_CMP_PER_INDEX_RESET 表
28.4.9 INFORMATION_SCHEMA INNODB_COLUMNS 表
28.4.10 INFORMATION_SCHEMA INNODB_DATAFILES 表
28.4.11 INFORMATION_SCHEMA INNODB_FIELDS 表
28.4.12 INFORMATION_SCHEMA INNODB_FOREIGN 表
28.4.13 INFORMATION_SCHEMA INNODB_FOREIGN_COLS 表
28.4.14 INFORMATION_SCHEMA INNODB_FT_BEING_DELETED 表
28.4.15 INFORMATION_SCHEMA INNODB_FT_CONFIG 表
28.4.16 INFORMATION_SCHEMA INNODB_FT_DEFAULT_STOPWORD 表
28.4.17 INFORMATION_SCHEMA INNODB_FT_DELETED 表
28.4.18 INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE 表
28.4.19 INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE 表
28.4.20 INFORMATION_SCHEMA INNODB_INDEXES 表
28.4.21 INFORMATION_SCHEMA INNODB_METRICS 表
28.4.22 INFORMATION_SCHEMA INNODB_SESSION_TEMP_TABLESPACES 表
28.4.23 INFORMATION_SCHEMA INNODB_TABLES 表
28.4.24 INFORMATION_SCHEMA INNODB_TABLESPACES 表
28.4.25 INFORMATION_SCHEMA INNODB_TABLESPACES_BRIEF 表
28.4.26 INFORMATION_SCHEMA INNODB_TABLESTATS 视图
28.4.27 INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO 表
28.4.28 INFORMATION_SCHEMA INNODB_TRX 表
28.4.29 INFORMATION_SCHEMA INNODB_VIRTUAL 表
本节提供了 INFORMATION_SCHEMA InnoDB 表的表定义。有关相关信息和示例,请参见 第 17.15 节,“InnoDB INFORMATION_SCHEMA 表”。
INFORMATION_SCHEMA InnoDB 表可用于监控正在进行的 InnoDB 活动,以便在问题出现之前检测效率低下的情况,或者解决性能和容量问题。随着数据库变得越来越大和繁忙,达到硬件容量的极限时,您需要监控和调整这些方面,以确保数据库正常运行。
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-table-reference.html
以下表格总结了 INFORMATION_SCHEMA 中的 InnoDB 表。更详细的信息,请参阅各个表的描述。
表 28.3 INFORMATION_SCHEMA InnoDB 表
| 表名 | 描述 | 引入版本 |
|---|---|---|
INNODB_BUFFER_PAGE | InnoDB 缓冲池中的页面 | |
INNODB_BUFFER_PAGE_LRU | InnoDB 缓冲池中页面的 LRU 排序 | |
INNODB_BUFFER_POOL_STATS | InnoDB 缓冲池统计信息 | |
INNODB_CACHED_INDEXES | InnoDB 缓冲池中每个索引缓存的索引页数 | |
INNODB_CMP | 与压缩的 InnoDB 表相关的操作状态 | |
INNODB_CMP_PER_INDEX | 与压缩的 InnoDB 表和索引相关的操作状态 | |
INNODB_CMP_PER_INDEX_RESET | 与压缩的 InnoDB 表和索引相关的操作状态 | |
INNODB_CMP_RESET | 与压缩的 InnoDB 表相关的操作状态 | |
INNODB_CMPMEM | InnoDB 缓冲池内压缩页面的状态 | |
INNODB_CMPMEM_RESET | InnoDB 缓冲池内压缩页面的状态 | |
INNODB_COLUMNS | 每个 InnoDB 表中的列 | |
INNODB_DATAFILES | InnoDB 文件表和通用表空间的数据文件路径信息 | |
INNODB_FIELDS | InnoDB 索引的关键列 | |
INNODB_FOREIGN | InnoDB 外键元数据 | |
INNODB_FOREIGN_COLS | InnoDB 外键列状态信息 | |
INNODB_FT_BEING_DELETED | INNODB_FT_DELETED 表的快照 | |
INNODB_FT_CONFIG | InnoDB 表全文索引和相关处理的元数据 | |
INNODB_FT_DEFAULT_STOPWORD | InnoDB 全文索引的默认停用词列表 | |
INNODB_FT_DELETED | 从 InnoDB 表全文索引中删除的行 | |
INNODB_FT_INDEX_CACHE | InnoDB 全文索引中新插入行的标记信息 | |
INNODB_FT_INDEX_TABLE | 用于处理针对 InnoDB 表全文索引的文本搜索的倒排索引信息 | |
INNODB_INDEXES | InnoDB 索引元数据 | |
INNODB_METRICS | InnoDB 性能信息 | |
INNODB_SESSION_TEMP_TABLESPACES | 会话临时表空间元数据 | 8.0.13 |
INNODB_TABLES | InnoDB 表元数据 | |
INNODB_TABLESPACES | InnoDB 按表存储、通用和撤销表空间元数据 | |
INNODB_TABLESPACES_BRIEF | 简要��按表存储、通用、撤销和系统表空间元数据 | |
INNODB_TABLESTATS | InnoDB 表低级状态信息 | |
INNODB_TEMP_TABLE_INFO | 关于活跃的用户创建的 InnoDB 临时表的信息 | |
INNODB_TRX | 活跃的 InnoDB 事务信息 | |
INNODB_VIRTUAL | InnoDB 虚拟生成列元数据 | |
| 表名 | 描述 | 引入版本 |
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-buffer-page-table.html
INNODB_BUFFER_PAGE表提供了关于InnoDB缓冲池中每个页面的信息。
有关相关用法信息和示例,请参见第 17.15.5 节,“InnoDB INFORMATION_SCHEMA 缓冲池表”。
警告
查询INNODB_BUFFER_PAGE表可能会影响性能。除非您了解性能影响并确定其可接受,否则不要在生产系统上查询此表。为避免影响生产系统性能,请在测试实例上重现要调查的问题并查询缓冲池统计信息。
INNODB_BUFFER_PAGE表具有以下列:
-
POOL_ID缓冲池 ID。这是一个标识符,用于区分多个缓冲池实例。
-
块 ID缓冲池块 ID。
-
空间表空间 ID;与
INNODB_TABLES.SPACE相同。 -
PAGE_NUMBER页码。
-
PAGE_TYPE页面类型。以下表显示了允许的值。
表 28.4 INNODB_BUFFER_PAGE.PAGE_TYPE 值
页面类型 描述 ALLOCATED新分配的页面 BLOB未压缩的 BLOB 页面 COMPRESSED_BLOB2后续压缩 BLOB 页面 COMPRESSED_BLOB第一个压缩的 BLOB 页面 ENCRYPTED_RTREE加密的 R 树 EXTENT_DESCRIPTOR扩展描述符页面 FILE_SPACE_HEADER文件空间头 FIL_PAGE_TYPE_UNUSED未使用 IBUF_BITMAP插入缓冲位图 IBUF_FREE_LIST插入缓冲区空闲列表 IBUF_INDEX插入缓冲索引 INDEXB 树节点 INODE索引节点 LOB_DATA未压缩的 LOB 数据 LOB_FIRST未压缩 LOB 的第一页 LOB_INDEX未压缩的 LOB 索引 PAGE_IO_COMPRESSED压缩页面 PAGE_IO_COMPRESSED_ENCRYPTED压缩和加密页面 PAGE_IO_ENCRYPTED加密页面 RSEG_ARRAY回滚段数组 RTREE_INDEXR 树索引 SDI_BLOB未压缩的 SDI BLOB SDI_COMPRESSED_BLOB压缩的 SDI BLOB SDI_INDEXSDI 索引 SYSTEM系统页面 TRX_SYSTEM事务系统数据 UNDO_LOG撤销日志页面 UNKNOWN未知 ZLOB_DATA压缩的 LOB 数据 ZLOB_FIRST压缩 LOB 的第一页 ZLOB_FRAG压缩 LOB 片段 ZLOB_FRAG_ENTRY压缩 LOB 片段索引 ZLOB_INDEX压缩 LOB 索引 页面类型 描述 -
FLUSH_TYPE刷新类型。
-
FIX_COUNT在缓冲池中使用此块的线程数。当为零时,该块有资格被驱逐。
-
IS_HASHED是否在此页面上构建了哈希索引。
-
NEWEST_MODIFICATION最新修改的日志序列号。
-
OLDEST_MODIFICATION最旧修改的日志序列号。
-
ACCESS_TIME用于判断页面首次访问时间的抽象数字。
-
TABLE_NAME页面所属的表的名称。此列仅适用于
PAGE_TYPE值为INDEX的页面。如果服务器尚未访问表,则该列为NULL。 -
INDEX_NAME页面所属的索引的名称。这可以是聚簇索引或二级索引的名称。此列仅适用于
PAGE_TYPE值为INDEX的页面。 -
NUMBER_RECORDS页面内记录的数量。
-
DATA_SIZE记录大小的总和。此列仅适用于
PAGE_TYPE值为INDEX的页面。 -
COMPRESSED_SIZE压缩页面大小。对于未压缩的页面,为
NULL。 -
PAGE_STATE页面状态。下表显示了允许的值。
表 28.5 INNODB_BUFFER_PAGE.PAGE_STATE 值
页面状态 描述 FILE_PAGE缓冲文件页面 MEMORY包含主内存对象 NOT_USED在空闲列表中 NULL清洁的压缩页面,刷新列表中的压缩页面,用作缓冲池监视哨的页面 READY_FOR_USE空闲页面 REMOVE_HASH在放入空闲列表之前应删除哈希索引 -
IO_FIX此页面是否有任何 I/O 挂起:
IO_NONE= 没有挂起的 I/O,IO_READ= 读挂起,IO_WRITE= 写挂起,IO_PIN= 禁止重新定位和从刷新中移除。 -
IS_OLD块是否在 LRU 列表中旧块的子列表中。
-
FREE_PAGE_CLOCK当块最后放置在 LRU 列表头部时,
freed_page_clock计数器的值。freed_page_clock计数器跟踪从 LRU 列表末尾移除的块数。 -
IS_STALE页面是否过时。在 MySQL 8.0.24 中添加。
示例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE LIMIT 1\G
*************************** 1\. row ***************************
POOL_ID: 0
BLOCK_ID: 0
SPACE: 97
PAGE_NUMBER: 2473
PAGE_TYPE: INDEX
FLUSH_TYPE: 1
FIX_COUNT: 0
IS_HASHED: YES
NEWEST_MODIFICATION: 733855581
OLDEST_MODIFICATION: 0
ACCESS_TIME: 3378385672
TABLE_NAME: `employees`.`salaries`
INDEX_NAME: PRIMARY
NUMBER_RECORDS: 468
DATA_SIZE: 14976
COMPRESSED_SIZE: 0
PAGE_STATE: FILE_PAGE
IO_FIX: IO_NONE
IS_OLD: YES
FREE_PAGE_CLOCK: 66
IS_STALE: NO
注意
-
此表主要用于专家级性能监控,或者在为 MySQL 开发与性能相关的扩展时使用。
-
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表列的其他信息,包括数据类型和默认值。 -
当删除表、表行、分区或索引时,相关页面会保留在缓冲池中,直到需要空间存储其他数据。
INNODB_BUFFER_PAGE表报告这些页面的信息,直到它们从缓冲池中被驱逐。有关InnoDB如何管理缓冲池数据的更多信息,请参见第 17.5.1 节,“缓冲池”。
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-buffer-page-lru-table.html
INNODB_BUFFER_PAGE_LRU 表提供了关于 InnoDB 缓冲池 中页面的信息;特别是它们在 LRU 列表中的顺序,该列表确定了缓冲池在变满时要从中驱逐的页面。
INNODB_BUFFER_PAGE_LRU 表与 INNODB_BUFFER_PAGE 表具有相同的列,但有一些例外。它具有 LRU_POSITION 和 COMPRESSED 列,而不是 BLOCK_ID 和 PAGE_STATE 列,并且不包括 IS_STALE 列。
有关使用信息和示例,请参见第 17.15.5 节,“InnoDB INFORMATION_SCHEMA Buffer Pool Tables”。
警告
查询 INNODB_BUFFER_PAGE_LRU 表可能会影响性能。除非您了解性能影响并确定其可接受,否则不要在生产系统上查询此表。为避免在生产系统上影响性能,请在测试实例上重现您想要调查的问题,并查询缓冲池统计信息。
INNODB_BUFFER_PAGE_LRU 表具有以下列:
-
POOL_ID缓冲池 ID。这是一个标识符,用于区分多个缓冲池实例。
-
LRU_POSITION页在 LRU 列表中的位置。
-
SPACE表空间 ID;与
INNODB_TABLES.SPACE相同的值。 -
PAGE_NUMBER页号。
-
PAGE_TYPE页类型。下表显示了允许的值。
表 28.6 INNODB_BUFFER_PAGE_LRU.PAGE_TYPE 值
页类型 描述 ALLOCATED新分配的页面 BLOB未压缩的 BLOB 页面 COMPRESSED_BLOB2后续压缩 BLOB 页面 COMPRESSED_BLOB第一��压缩的 BLOB 页面 ENCRYPTED_RTREE加密的 R 树 EXTENT_DESCRIPTOR扩展描述符页面 FILE_SPACE_HEADER文件空间头 FIL_PAGE_TYPE_UNUSED未使用 IBUF_BITMAP插入缓冲位图 IBUF_FREE_LIST插入缓冲空闲列表 IBUF_INDEX插入缓冲索引 INDEXB 树节点 INODE索引节点 LOB_DATA未压缩的 LOB 数据 LOB_FIRST未压缩 LOB 的第一页 LOB_INDEX未压缩 LOB 索引 PAGE_IO_COMPRESSED压缩页面 PAGE_IO_COMPRESSED_ENCRYPTED压缩且加密的页面 PAGE_IO_ENCRYPTED加密页面 RSEG_ARRAY回滚段数组 RTREE_INDEXR 树索引 SDI_BLOB未压缩的 SDI BLOB SDI_COMPRESSED_BLOB压缩的 SDI BLOB SDI_INDEXSDI 索引 SYSTEM系统页 TRX_SYSTEM事务系统数据 UNDO_LOG撤销日志页 UNKNOWN未知 ZLOB_DATA压缩 LOB 数据 ZLOB_FIRST压缩 LOB 的第一页 ZLOB_FRAG压缩 LOB 片段 ZLOB_FRAG_ENTRY压缩 LOB 片段索引 ZLOB_INDEX压缩 LOB 索引 页面类型 描述 -
FLUSH_TYPE刷新类型。
-
FIX_COUNT在缓冲池中使用此块的线程数。当为零时,该块有资格被驱逐。
-
IS_HASHED是否在此页面上构建了哈希索引。
-
NEWEST_MODIFICATION最新修改的日志序列号。
-
OLDEST_MODIFICATION最旧修改的日志序列号。
-
ACCESS_TIME用于判断页面首次访问时间的抽象数字。
-
TABLE_NAME页面所属表的名称。此列仅适用于
PAGE_TYPE值为INDEX的页面。如果服务器尚未访问表,则列为NULL。 -
INDEX_NAME页面所属索引的名称。这可以是聚簇索引或二级索引的名称。此列仅适用于
PAGE_TYPE值为INDEX的页面。 -
NUMBER_RECORDS页面内记录的数量。
-
DATA_SIZE记录大小的总和。此列仅适用于
PAGE_TYPE值为INDEX的页面。 -
COMPRESSED_SIZE压缩页面大小。对于未压缩的页面,为
NULL。 -
COMPRESSED页面是否被压缩。
-
IO_FIX是否有任何 I/O 挂起在此页面:
IO_NONE= 没有挂起的 I/O,IO_READ= 读取挂起,IO_WRITE= 写入挂起。 -
IS_OLD块是否在 LRU 列表中旧块的子列表中。
-
FREE_PAGE_CLOCK当块最后放置在 LRU 列表头部时,
freed_page_clock计数器的值。freed_page_clock计数器跟踪从 LRU 列表末尾移除的块数。
示例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G
*************************** 1\. row ***************************
POOL_ID: 0
LRU_POSITION: 0
SPACE: 97
PAGE_NUMBER: 1984
PAGE_TYPE: INDEX
FLUSH_TYPE: 1
FIX_COUNT: 0
IS_HASHED: YES
NEWEST_MODIFICATION: 719490396
OLDEST_MODIFICATION: 0
ACCESS_TIME: 3378383796
TABLE_NAME: `employees`.`salaries`
INDEX_NAME: PRIMARY
NUMBER_RECORDS: 468
DATA_SIZE: 14976
COMPRESSED_SIZE: 0
COMPRESSED: NO
IO_FIX: IO_NONE
IS_OLD: YES
FREE_PAGE_CLOCK: 0
注意
-
此表主要用于专家级性能监控,或者在为 MySQL 开发与性能相关的扩展时使用。
-
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。 -
查询此表可能需要 MySQL 分配一个大块连续内存,超过缓冲池中活动页面数量的 64 字节倍。这种分配可能会导致内存不足错误,特别是对于具有多千兆字节缓冲池的系统。
-
查询此表需要 MySQL 在遍历 LRU 列表时锁定表示缓冲池的数据结构,这可能会降低并发性,特别是对于具有多千兆字节缓冲池的系统。
-
当删除表、表行、分区或索引时,相关页面会保留在缓冲池中,直到为其他数据需要空间。
INNODB_BUFFER_PAGE_LRU表报告有关这些页面的信息,直到它们从缓冲池中被驱逐。有关InnoDB如何管理缓冲池数据的更多信息,请参见 Section 17.5.1, “Buffer Pool”。
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-buffer-pool-stats-table.html
INNODB_BUFFER_POOL_STATS 表提供了与 SHOW ENGINE INNODB STATUS 输出中提供的缓冲池信息相同的信息。也可以使用 InnoDB 缓冲池 服务器状态变量 获取相同的信息。
在缓冲池中使页面“年轻”或“非年轻”的概念是指在缓冲池数据结构的头部和尾部之间转移它们的过程。标记为“年轻”的页面需要更长时间才会从缓冲池中移除,而标记为“非年轻”的页面则更接近被 驱逐 的位置。
有关使用信息和示例,请参见 Section 17.15.5, “InnoDB INFORMATION_SCHEMA Buffer Pool Tables”。
INNODB_BUFFER_POOL_STATS 表包含以下列:
-
POOL_ID缓冲池 ID。这是用于区分多个缓冲池实例的标识符。
-
POOL_SIZEInnoDB缓冲池大小(以页面为单位)。 -
FREE_BUFFERSInnoDB缓冲池中的空闲页面数。 -
DATABASE_PAGESInnoDB缓冲池中包含数据的页面数。这个数字包括脏页和干净页。 -
OLD_DATABASE_PAGESold缓冲池子列表中的页面数。 -
MODIFIED_DATABASE_PAGES修改(脏)数据库页面数。
-
PENDING_DECOMPRESS等待解压的页面数。
-
PENDING_READS等待读取的页面数。
-
PENDING_FLUSH_LRULRU 中等待刷新的页面数。
-
PENDING_FLUSH_LIST刷新列表中等待刷新的页面数。
-
PAGES_MADE_YOUNG标记为年轻的页面数。
-
PAGES_NOT_MADE_YOUNG未被标记为年轻的页面数。
-
PAGES_MADE_YOUNG_RATE每秒标记为年轻的页面数(自上次打印以来标记为年轻的页面数 / 经过的时间)。
-
PAGES_MADE_NOT_YOUNG_RATE每秒未被标记为年轻的页面数(自上次打印以来未被标记为年轻的页面数 / 经过的时间)。
-
NUMBER_PAGES_READ读取的页面数。
-
NUMBER_PAGES_CREATED创建的页面数。
-
NUMBER_PAGES_WRITTEN写入的页面数。
-
PAGES_READ_RATE每秒读取的页面数(自上次打印以来读取的页面数 / 经过的时间)。
-
PAGES_CREATE_RATE每秒创建的页面数量(自上次打印以来创建的页面/经过的时间)。
-
PAGES_WRITTEN_RATE每秒写入的页面数量(自上次打印以来写入的页面/经过的时间)。
-
NUMBER_PAGES_GET逻辑读请求的数量。
-
HIT_RATE缓冲池命中率。
-
YOUNG_MAKE_PER_THOUSAND_GETS每千次获取的页面变为年轻页面的数量。
-
NOT_YOUNG_MAKE_PER_THOUSAND_GETS每千次获取未变为年轻页面的数量。
-
NUMBER_PAGES_READ_AHEAD预读取的页面数量。
-
NUMBER_READ_AHEAD_EVICTED由预读取后台线程读入
InnoDB缓冲池的页面数量,随后在没有被查询访问的情况下被驱逐。 -
READ_AHEAD_RATE每秒的预读取速率(自上次打印以来的预读取页面/经过的时间)。
-
READ_AHEAD_EVICTED_RATE每秒未访问的预读取页面被驱逐的数量(自上次打印以来未访问的预读取页面/经过的时间)。
-
LRU_IO_TOTAL总 LRU I/O。
-
LRU_IO_CURRENT当前间隔的 LRU I/O。
-
UNCOMPRESS_TOTAL解压缩的页面总数。
-
UNCOMPRESS_CURRENT当前间隔内解压缩的页面数量。
示例。
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS\G
*************************** 1\. row ***************************
POOL_ID: 0
POOL_SIZE: 8192
FREE_BUFFERS: 1
DATABASE_PAGES: 8085
OLD_DATABASE_PAGES: 2964
MODIFIED_DATABASE_PAGES: 0
PENDING_DECOMPRESS: 0
PENDING_READS: 0
PENDING_FLUSH_LRU: 0
PENDING_FLUSH_LIST: 0
PAGES_MADE_YOUNG: 22821
PAGES_NOT_MADE_YOUNG: 3544303
PAGES_MADE_YOUNG_RATE: 357.62602199870594
PAGES_MADE_NOT_YOUNG_RATE: 0
NUMBER_PAGES_READ: 2389
NUMBER_PAGES_CREATED: 12385
NUMBER_PAGES_WRITTEN: 13111
PAGES_READ_RATE: 0
PAGES_CREATE_RATE: 0
PAGES_WRITTEN_RATE: 0
NUMBER_PAGES_GET: 33322210
HIT_RATE: 1000
YOUNG_MAKE_PER_THOUSAND_GETS: 18
NOT_YOUNG_MAKE_PER_THOUSAND_GETS: 0
NUMBER_PAGES_READ_AHEAD: 2024
NUMBER_READ_AHEAD_EVICTED: 0
READ_AHEAD_RATE: 0
READ_AHEAD_EVICTED_RATE: 0
LRU_IO_TOTAL: 0
LRU_IO_CURRENT: 0
UNCOMPRESS_TOTAL: 0
UNCOMPRESS_CURRENT: 0
注意事项。
-
此表主要用于专家级性能监控,或者在开发与 MySQL 性能相关的扩展时使用。
-
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。
28.4.5 INFORMATION_SCHEMA INNODB_CACHED_INDEXES 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-cached-indexes-table.html
INNODB_CACHED_INDEXES 表报告了每个索引在 InnoDB 缓冲池中缓存的索引页数。
有关相关用法信息和示例,请参见 Section 17.15.5, “InnoDB INFORMATION_SCHEMA Buffer Pool Tables”。
INNODB_CACHED_INDEXES 表具有以下列:
-
SPACE_ID表空间 ID。
-
INDEX_ID索引的标识符。索引标识符在实例中的所有数据库中是唯一的。
-
N_CACHED_PAGES在
InnoDB缓冲池中缓存的索引页数。
示例
此查询返回特定索引在 InnoDB 缓冲池中缓存的索引页数:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CACHED_INDEXES WHERE INDEX_ID=65\G
*************************** 1\. row ***************************
SPACE_ID: 4294967294
INDEX_ID: 65
N_CACHED_PAGES: 45
此查询使用 INNODB_INDEXES 和 INNODB_TABLES 表来解析每个 INDEX_ID 值的表名和索引名,返回在 InnoDB 缓冲池中缓存的每个索引的索引页数。
SELECT
tables.NAME AS table_name,
indexes.NAME AS index_name,
cached.N_CACHED_PAGES AS n_cached_pages
FROM
INFORMATION_SCHEMA.INNODB_CACHED_INDEXES AS cached,
INFORMATION_SCHEMA.INNODB_INDEXES AS indexes,
INFORMATION_SCHEMA.INNODB_TABLES AS tables
WHERE
cached.INDEX_ID = indexes.INDEX_ID
AND indexes.TABLE_ID = tables.TABLE_ID;
注意
-
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。
28.4.6 INFORMATION_SCHEMA INNODB_CMP 和 INNODB_CMP_RESET 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-cmp-table.html
INNODB_CMP和INNODB_CMP_RESET表提供与压缩InnoDB表相关操作的状态信息。
INNODB_CMP和INNODB_CMP_RESET表具有以下列:
-
PAGE_SIZE压缩页面的大小(以字节为单位)。
-
COMPRESS_OPS一个大小为
PAGE_SIZE的 B 树页面被压缩的次数。每当创建一个空页面或未压缩修改日志的空间用尽时,页面就会被压缩。 -
COMPRESS_OPS_OK一个大小为
PAGE_SIZE的 B 树页面成功压缩的次数。此计数永远不应超过COMPRESS_OPS。 -
COMPRESS_TIME用于尝试压缩大小为
PAGE_SIZE的 B 树页面所用的总时间(以秒为单位)。 -
UNCOMPRESS_OPS一个大小为
PAGE_SIZE的 B 树页面被解压的次数。每当压缩失败或在缓冲池中不存在未压缩页面时首次访问���,B 树页面就会被解压。 -
UNCOMPRESS_TIME用于解压大小为
PAGE_SIZE的 B 树页面所用的总时间(以秒为单位)。
示例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP\G
*************************** 1\. row ***************************
page_size: 1024
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 0
uncompress_time: 0
*************************** 2\. row ***************************
page_size: 2048
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 0
uncompress_time: 0
*************************** 3\. row ***************************
page_size: 4096
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 0
uncompress_time: 0
*************************** 4\. row ***************************
page_size: 8192
compress_ops: 86955
compress_ops_ok: 81182
compress_time: 27
uncompress_ops: 26828
uncompress_time: 5
*************************** 5\. row ***************************
page_size: 16384
compress_ops: 0
compress_ops_ok: 0
compress_time: 0
uncompress_ops: 0
uncompress_time: 0
注意
-
使用这些表来衡量数据库中
InnoDB表压缩的有效性。 -
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMA``COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。 -
有关使用信息,请参见第 17.9.1.4 节,“在运行时监视 InnoDB 表压缩”和第 17.15.1.3 节,“使用压缩信息模式表”。有关
InnoDB表压缩的一般信息,请参见第 17.9 节,“InnoDB 表和页面压缩”。
28.4.7 INFORMATION_SCHEMA INNODB_CMPMEM 和 INNODB_CMPMEM_RESET 表
原文:
dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-cmpmem-table.html
INNODB_CMPMEM和INNODB_CMPMEM_RESET表提供有关InnoDB缓冲池内压缩页的状态信息。
INNODB_CMPMEM和INNODB_CMPMEM_RESET表具有以下列:
-
PAGE_SIZE字节中的块大小。此表的每个记录描述此大小的块。
-
BUFFER_POOL_INSTANCE缓冲池实例的唯一标识符。
-
PAGES_USED当前正在使用的大小为
PAGE_SIZE的块数。 -
PAGES_FREE当前可用于分配的大小为
PAGE_SIZE的块数。此列显示内存池中的外部碎片。理想情况下,这些数字应最多为 1。 -
RELOCATION_OPS大小为
PAGE_SIZE的块已重新定位的次数。当尝试形成更大的释放块时,伙伴系统可以重新定位已分配的“伙伴邻居”块。从INNODB_CMPMEM_RESET表中读取会重置此计数。 -
RELOCATION_TIME用于重新定位大小为
PAGE_SIZE的块所用的总微秒数。从表INNODB_CMPMEM_RESET中读取会重置此计数。
示例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM\G
*************************** 1\. row ***************************
page_size: 1024
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 2\. row ***************************
page_size: 2048
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 3\. row ***************************
page_size: 4096
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
*************************** 4\. row ***************************
page_size: 8192
buffer_pool_instance: 0
pages_used: 7673
pages_free: 15
relocation_ops: 4638
relocation_time: 0
*************************** 5\. row ***************************
page_size: 16384
buffer_pool_instance: 0
pages_used: 0
pages_free: 0
relocation_ops: 0
relocation_time: 0
注意
-
使用这些表来衡量数据库中
InnoDB表的压缩效果。 -
您必须具有
PROCESS权限才能查询此表。 -
使用
INFORMATION_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。 -
查看使用信息,请参阅第 17.9.1.4 节,“在运行时监视 InnoDB 表压缩”和第 17.15.1.3 节,“使用压缩信息模式表”。有关
InnoDB表压缩的一般信息,请参阅第 17.9 节,“InnoDB 表和页压缩”。