MySQL之自带四库之information_schema库

一、information_schema库简介

  Mysql5.7版本自带4个数据库,information_schema、mysql、performance_schema、sys。INFORMATION_SCHEMA提供对数据库元数据的访问 ,有关MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语是数据字典和系统目录。该位置存储有关MySQL服务器维护的所有其他数据库的信息。
  该INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,并且您不能在它们上设置触发器。另外,没有使用该名称的数据库目录。虽然你可以选择INFORMATION_SCHEMA与一个默认的数据库USE 语句,你只能读取表的内容,不执行 INSERT, UPDATE或 DELETE对他们的操作。information_schema库共计有61张表。
  对于大多数INFORMATION_SCHEMA表,每个MySQL用户都有权访问它们,但只能看到表中与用户具有适当访问权限的对象相对应的行。在某些情况下(例如,表中的ROUTINE_DEFINITION列 INFORMATION_SCHEMA ROUTINES),特权不足的用户会看到NULL。某些表具有不同的特权要求;为此,在适用的表格说明中提到了这些要求。例如,InnoDB表(名称以开头的表INNODB_)需要PROCESS特权。

二、表清单

mysql> show tables;
±--------------------------------------+
| Tables_in_information_schema |
±--------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
| OPTIMIZER_TRACE |
| PARAMETERS |
| PARTITIONS |
| PLUGINS |
| PROCESSLIST |
| PROFILING |
| REFERENTIAL_CONSTRAINTS |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| SESSION_STATUS |
| SESSION_VARIABLES |
| STATISTICS |
| TABLES |
| TABLESPACES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
| INNODB_LOCKS |
| INNODB_TRX |
| INNODB_SYS_DATAFILES |
| INNODB_FT_CONFIG |
| INNODB_SYS_VIRTUAL |
| INNODB_CMP |
| INNODB_FT_BEING_DELETED |
| INNODB_CMP_RESET |
| INNODB_CMP_PER_INDEX |
| INNODB_CMPMEM_RESET |
| INNODB_FT_DELETED |
| INNODB_BUFFER_PAGE_LRU |
| INNODB_LOCK_WAITS |
| INNODB_TEMP_TABLE_INFO |
| INNODB_SYS_INDEXES |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_CMP_PER_INDEX_RESET |
| INNODB_BUFFER_PAGE |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_TABLE |
| INNODB_FT_INDEX_CACHE |
| INNODB_SYS_TABLESPACES |
| INNODB_METRICS |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMPMEM |
| INNODB_BUFFER_POOL_STATS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_TABLESTATS |
±--------------------------------------+
61 rows in set (0.00 sec)

三、分表介绍

1、CHARACTER_SETS表

该CHARACTER_SETS表提供有关可用字符集的信息。该CHARACTER_SETS表包含以下列:

  • CHARACTER_SET_NAME #字符集名称。
  • DEFAULT_COLLATE_NAME #字符集的默认排序规则。
  • DESCRIPTION #字符集的描述。
  • MAXLEN #存储一个字符所需的最大字节数。
    SHOW CHARACTER SET; 该命令从这个表获取结果。自带的字符集有41个,包括utf8、utf8mb4、gb18030等;默认字符集可以通过SHOW VARIABLES LIKE ‘character%’; 查询,默认为latin1;可以在my.cnf配置文件中指定默认字符集,character_set_server=utf8。
    MySQL之自带四库之information_schema库_第1张图片

2、COLLATIONS表

该COLLATIONS表提供有关每个字符集的排序规则的信息。
该COLLATIONS表包含以下列:

  • COLLATION_NAME #排序规则名称。
  • CHARACTER_SET_NAME #排序规则所关联的字符集的名称。
  • ID #整理ID。
  • IS_DEFAULT #排序规则是否是其字符集的默认设置。
  • IS_COMPILED #字符集是否已编译到服务器中。
  • SORTLEN #这与对字符集中表达的字符串进行排序所需的内存量有关。

3、COLLATION_CHARACTER_SET_APPLICABILITY表

该 COLLATION_CHARACTER_SET_APPLICABILITY 表指示什么字符集适用于什么排序规则。该表包含以下列:

  • COLLATION_NAME #排序规则名称。
  • CHARACTER_SET_NAME #排序规则所关联的字符集的名称。

4、COLUMNS表

该COLUMNS表提供有关表中列的信息。该COLUMNS表包含以下列:

  • TABLE_CATALOG #包含该列的表所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA #包含该列的表所属的架构(数据库)的名称。
  • TABLE_NAME #包含该列的表的名称。
  • COLUMN_NAME #列的名称。
  • ORDINAL_POSITION #表格在表格中的位置。RDINAL_POSITION是必要的,因为您可能要说ORDER BY ORDINAL_POSITION。不像SHOW COLUMNS,SELECT从COLUMNS表没有自动排序。
  • COLUMN_DEFAULT #列的默认值。这是 NULL如果列有一个明确的默认NULL,或者如果列定义不包括DEFAULT条款。
  • IS_NULLABLE #列的可空性。值是YES是否 NULL可以将值存储在列中( NO如果不能)。
  • DATA_TYPE #列数据类型。该DATA_TYPE值仅是类型名称,没有其他信息。该COLUMN_TYPE 值包含类型名称以及可能的其他信息,例如精度或长度。
  • CHARACTER_MAXIMUM_LENGTH #对于字符串列,以字符为单位的最大长度。
  • CHARACTER_OCTET_LENGTH #对于字符串列,最大长度以字节为单位。
  • NUMERIC_PRECISION #对于数字列,数字精度。
  • NUMERIC_SCALE #对于数字列,数字刻度。
  • DATETIME_PRECISION #对于时间列,分数秒精度。
  • CHARACTER_SET_NAME #对于字符串列,字符集名称。
  • COLLATION_NAME #对于字符串列,归类名称。
  • COLUMN_TYPE #列数据类型。该DATA_TYPE值仅是类型名称,没有其他信息。该COLUMN_TYPE 值包含类型名称以及可能的其他信息,例如精度或长度。
  • COLUMN_KEY #列是否被索引:如果COLUMN_KEY为空,则该列要么不被索引,要么仅作为多列非唯一索引中的第二列被索引。如果COLUMN_KEY为is PRI,PRIMARY KEY则列为a或为多列中的列之一PRIMARY KEY。如果COLUMN_KEY为 UNI,则该列为UNIQUE索引的第一列。( UNIQUE索引允许多个 NULL值,但是您可以NULL通过检查 Null列来判断该列是否允许。)如果COLUMN_KEY为is MUL,则该列是非唯一索引的第一列,在该列中允许多次出现给定值。如果超过一个COLUMN_KEY值适用于表中给定的列, COLUMN_KEY显示一个具有最高优先级,顺序PRI, UNI,MUL。
    甲UNIQUE索引可被显示为 PRI,如果它不能包含 NULL值并没有 PRIMARY KEY在表中。甲 UNIQUE索引可能会显示为 MUL如果若干列形成复合 UNIQUE索引; 尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。
  • EXTRA #关于给定列的任何其他可用信息。在以下情况下,该值是非空的:
    auto_increment具有AUTO_INCREMENT属性的列。
    on update CURRENT_TIMESTAMP对于 TIMESTAMP或 DATETIME有列ON UPDATE CURRENT_TIMESTAMP 属性。
    STORED GENERATED或VIRTUAL GENERATED用于生成的列。
  • PRIVILEGES #您具有该列的特权。
  • COLUMN_COMMENT #列定义中包含的任何注释。
  • GENERATION_EXPRESSION #对于生成的列,显示用于计算列值的表达式。对于未生成的列为空。有关生成的列的信息,

5、OLUMN_PRIVILEGES表

该COLUMN_PRIVILEGES表提供有关列特权的信息。它从mysql.columns_priv系统表中获取其值 。该COLUMN_PRIVILEGES表包含以下列:

  • GRANTEE #授予特权的帐户名称, 格式。 ‘user_name’@‘host_name’
  • TABLE_CATALOG #包含该列的表所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA #包含该列的表所属的架构(数据库)的名称。
  • TABLE_NAME #包含该列的表的名称。
    COLUMN_NAME #列的名称。
  • PRIVILEGE_TYPE #授予的特权。该值可以是可以在列级别上授予的任何特权。每行列出一个特权,因此,受赠方每列拥有一行特权。在的输出中 SHOW FULL COLUMNS,特权全部放在一列中,并用小写字母表示,例如 select,insert,update,references。在中 COLUMN_PRIVILEGES,每行有一个特权(大写)。
  • IS_GRANTABLE #YES如果用户具有 GRANT OPTION特权, NO否则。输出不会使用列出 GRANT OPTION为单独的行PRIVILEGE_TYPE=‘GRANT OPTION’。

6、NGINES表

该ENGINES表提供有关存储引擎的信息。这对于检查是否支持存储引擎或查看默认引擎特别有用。该ENGINES表包含以下列:

  • ENGINE #存储引擎的名称。
  • SUPPORT #服务器对存储引擎的支持级别,如下表所示。
    MySQL之自带四库之information_schema库_第2张图片
    值NO表示服务器在编译时不支持引擎,因此无法在运行时启用。
    的值DISABLED,因为服务器启动与关闭发动机,或者是因为不是所有的选项来启用它要求给予一个选项,无论发生。在后一种情况下,错误日志应包含指示为什么禁用该选项的原因。请参见 第5.4.2节“错误日志”。
    您可能还会看到DISABLED存储引擎,如果服务器经过编译以支持该服务器,但是该服务器是通过一个 选项启动的 。对于存储引擎,意味着服务器是在编译时支持NDB Cluster的,但未使用该选项启动。 --skip-engine_nameNDBDISABLED–ndbcluster
    所有MySQL服务器都支持MyISAM表。无法禁用MyISAM。
  • COMMENT #存储引擎的简要说明。
  • TRANSACTIONS# 存储引擎是否支持事务。
  • XA #存储引擎是否支持XA事务。
  • SAVEPOINTS #存储引擎是否支持保存点。

7、VENTS表

该EVENTS表提供了有关事件管理器事件的信息,该EVENTS表包含以下列:

  • EVENT_CATALOG #事件所属的目录的名称。此值始终为def。
  • EVENT_SCHEMA #事件所属的架构(数据库)的名称。
  • EVENT_NAME #事件的名称。
  • DEFINER #DEFINER子句中 命名的帐户(通常是创建事件的用户), 格式。 ‘user_name’@‘host_name’
  • TIME_ZONE #事件时区,它是用于安排事件的时区,并且在事件执行时有效。默认值为SYSTEM。
  • EVENT_BODY #事件DO子句中的语句所使用的语言 。该值始终为 SQL。
  • EVENT_DEFINITION #组成事件DO子句的SQL语句的文本 ;换句话说,此事件执行的语句。
  • EVENT_TYPE #事件重复类型,ONE TIME (瞬态)或RECURRING(重复)。
  • EXECUTE_AT #对于一次性事件,这是在用于创建事件的语句DATETIME的AT子句中CREATE EVENT或在ALTER EVENT修改事件的最后一条语句的子句中 指定的 值 。此列中显示的值反映INTERVAL事件AT子句中包含的任何值 的加法或减法。例如,如果使用创建了一个事件ON SCHEDULE AT CURRENT_TIMESTAMP + ‘1:6’ DAY_HOUR,并且该事件是在2018-02-09 14:05:30创建的,则此列中显示的值为 ‘2018-02-10 20:05:30’。如果事件的计时是由EVERY子句而不是AT子句确定的(也就是说,如果事件重复发生),则此列的值为 NULL。
  • INTERVAL_VALUE #对于重复发生的事件,是两次事件执行之间要等待的时间间隔数。对于瞬态事件,该值始终为 NULL。
  • INTERVAL_FIELD #重复事件在重复之前等待的时间间隔所用的时间单位。对于瞬态事件,该值始终为NULL。
  • SQL_MODE #创建或更改事件以及执行事件时有效的SQL模式。
  • STARTS #重复活动的开始日期和时间。这将显示为一个DATETIME值,NULL如果没有为事件定义开始日期和时间,则显示为一个值。对于瞬态事件,此列始终为NULL。对于定义包含STARTS子句的重复事件,此列包含相应的 DATETIME值。与该 EXECUTE_AT列一样,此值可解析使用的所有表达式。如果没有STARTS 子句影响事件的发生时间,则此列为 NULL
  • ENDS #对于定义包含ENDS子句的重复事件 ,此列包含相应的DATETIME值。与该EXECUTE_AT列一样,此值可解析使用的所有表达式。如果没有 ENDS子句影响事件的发生时间,则此列为NULL。
  • STATUS #事件状态。其中一个ENABLED, DISABLED或 SLAVESIDE_DISABLED。 SLAVESIDE_DISABLED表示事件的创建发生在充当复制源的另一台MySQL服务器上,并复制到充当副本的当前MySQL服务器上,但是该事件当前不在副本上执行。
  • ON_COMPLETION #两个值之一PRESERVE或 NOT PRESERVE。
  • CREATED #创建事件的日期和时间。这是一个 TIMESTAMP值。
  • LAST_ALTERED #上次修改事件的日期和时间。这是一个 TIMESTAMP值。如果事件自创建以来尚未修改,则该值与该CREATED值相同。
  • LAST_EXECUTED #事件最后执行的日期和时间。这是一个 DATETIME值。如果事件从未执行过,则此列为NULL。LAST_EXECUTED指示事件何时开始。结果,该ENDS列永远不会小于LAST_EXECUTED。
  • EVENT_COMMENT #如果事件有一个,则注释文本。如果不是,则此值为空。
  • ORIGINATOR #创建事件的MySQL服务器的服务器ID;用于复制。ALTER EVENT如果在复制源上执行此值,则可以通过该语句所在的服务器的服务器ID更新该值 。默认值为0。
  • CHARACTER_SET_CLIENT #character_set_client创建事件时系统变量 的会话值 。
  • COLLATION_CONNECTION #collation_connection创建事件时系统变量 的会话值 。
  • DATABASE_COLLATION #与事件关联的数据库的整理。

8、FILES表

该FILES表提供有关存储MySQL表空间数据的文件的信息。该FILES表提供有关InnoDB数据文件的信息。在NDB群集中,此表还提供有关存储NDB群集磁盘数据表的文件的信息。有关特定于的其他信息InnoDB。详细字段值介绍见https://dev.mysql.com/doc/refman/5.7/en/information-schema-files-table.html

9、GLOBAL_STATUS表

在GLOBAL_STATUS和 SESSION_STATUS表格提供了有关服务器状态变量的信息。它们的内容对应于SHOW GLOBAL STATUS和 SHOW SESSION STATUS语句产生的信息

10、GLOBAL_VARIABLES表

在GLOBAL_VARIABLES和 SESSION_VARIABLES表格提供了有关服务器状态变量的信息。它们的内容对应于SHOW GLOBAL VARIABLES和 SHOW SESSION VARIABLES语句产生的信息。VARIABLE_VALUE每个表 的列定义为VARCHAR(1024)。对于没有完全显示的具有非常长的值的变量,请使用SELECT变通办法。例如:SELECT @@GLOBAL.innodb_data_file_path;

11、KEY_COLUMN_USAGE表

该KEY_COLUMN_USAGE表描述了哪些键列具有约束。该KEY_COLUMN_USAGE表包含以下列:

  • CONSTRAINT_CATALOG #约束所属的目录的名称。此值始终为def。
  • CONSTRAINT_SCHEMA #约束所属的架构(数据库)的名称。
  • CONSTRAINT_NAME #约束的名称。
  • TABLE_CATALOG #该表所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA #表所属的模式(数据库)的名称。
  • TABLE_NAME #具有约束的表的名称。
  • COLUMN_NAME #具有约束的列的名称。如果约束是外键,则这是外键的列,而不是外键引用的列。
  • ORDINAL_POSITION #列在约束中的位置,而不是表中列的位置。列位置从1开始编号。
  • POSITION_IN_UNIQUE_CONSTRAINT #NULL用于唯一键和主键约束。对于外键约束,此列是所引用表的键中的顺序位置。
  • REFERENCED_TABLE_SCHEMA #约束引用的模式(数据库)的名称。
  • REFERENCED_TABLE_NAME #约束引用的表的名称。
  • REFERENCED_COLUMN_NAME #约束引用的列的名称。

12、OPTIMIZER_TRACE表

该OPTIMIZER_TRACE表提供了优化器跟踪功能所生成的信息,用于跟踪的语句。要启用跟踪,请使用 optimizer_trace系统变量。该OPTIMIZER_TRACE表包含以下列:

  • QUERY #跟踪语句的文本。
  • TRACE #跟踪,JSON格式。
  • MISSING_BYTES_BEYOND_MAX_MEM_SIZE #每个记住的跟踪都是一个字符串,随着优化的进行扩展并向其附加数据。该 optimizer_trace_max_mem_size 变量设置所有当前记忆的跟踪所使用的内存总量的限制。如果达到此限制,则当前跟踪不会扩展(因此是不完整的),并且该MISSING_BYTES_BEYOND_MAX_MEM_SIZE #列显示该跟踪丢失的字节数。
  • INSUFFICIENT_PRIVILEGES #如果跟踪的查询使用SQL - SECURITY值为的 视图或存储的例程 DEFINER,则可能是拒绝了除定义程序之外的其他用户查看查询的跟踪。在这种情况下,跟踪显示为空, INSUFFICIENT_PRIVILEGES值为1。否则,值为0。

13、PARAMETERS表

该PARAMETERS表提供有关存储例程(存储过程和存储函数)的参数的信息,以及有关存储函数的返回值的信息。该PARAMETERS 表不包括内置SQL函数或用户定义函数(UDF)。参数信息类似于表中param_list列 的内容mysql.proc。该PARAMETERS表包含以下列:

  • SPECIFIC_CATALOG #包含参数的例程所属的目录的名称。此值始终为 def。
  • SPECIFIC_SCHEMA #包含参数的例程所属的架构(数据库)的名称。
  • SPECIFIC_NAME #包含参数的例程的名称。
  • ORDINAL_POSITION #对于存储过程或函数的连续参数,ORDINAL_POSITION值是1、2、3,依此类推。对于存储的函数,还有一行适用于函数返回值(如该 RETURNS子句所述)。返回值不是真正的参数,因此描述它的行具有以下独特特征:
    ORDINAL_POSITION值是0。
    该PARAMETER_NAME和 PARAMETER_MODE值是 NULL因为返回值没有任何名称和模式不适用。
  • PARAMETER_MODE #参数的模式。此值是一个 IN,OUT或 INOUT。对于存储的函数返回值,该值为NULL。
  • PARAMETER_NAME #参数的名称。对于存储的函数返回值,该值为NULL。
  • DATA_TYPE #参数数据类型。该DATA_TYPE值仅是类型名称,没有其他信息。该 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
  • CHARACTER_MAXIMUM_LENGTH #对于字符串参数,最大长度(以字符为单位)。
  • CHARACTER_OCTET_LENGTH #对于字符串参数,最大长度(以字节为单位)。
  • NUMERIC_PRECISION #对于数字参数,数字精度。
  • NUMERIC_SCALE #对于数字参数,为数字刻度。
  • DATETIME_PRECISION #对于时间参数,分数秒精度。
  • CHARACTER_SET_NAME #对于字符串参数,字符集名称。
  • COLLATION_NAME #对于字符串参数,归类名称。
  • DTD_IDENTIFIER #参数数据类型。该DATA_TYPE值仅是类型名称,没有其他信息。该 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
  • ROUTINE_TYPE #PROCEDURE用于存储过程, FUNCTION用于存储函数。

14、PARTITIONS表

该PARTITIONS表提供有关表分区的信息。该表中的每一行都对应于分区表的单个分区或子分区。有关分区表的更多信息,请参见第21章,分区。该PARTITIONS表包含以下列:

  • TABLE_CATALOG #该表所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA #表所属的模式(数据库)的名称。
  • TABLE_NAME #包含分区的表的名称。
  • PARTITION_NAME #分区的名称。
  • SUBPARTITION_NAME #如果PARTITIONS表行表示一个子分区,则为该子分区的名称;否则,为0。否则 NULL。
  • PARTITION_ORDINAL_POSITION #所有分区的索引顺序与定义的顺序相同,1是分配给第一个分区的编号。索引可以随着分区的添加,删除和重组而改变;考虑到所有索引更改,此列中显示的数字反映了当前订单。
  • SUBPARTITION_ORDINAL_POSITION #给定分区内的子分区也按与在表中对分区进行索引的方式相同的方式进行索引和重新索引。
  • PARTITION_METHOD #RANGE, LIST,HASH, LINEAR HASH,KEY,或 LINEAR KEY值之一。
  • SUBPARTITION_METHOD #值之一HASH,LINEAR HASH,KEY,或LINEAR KEY。
  • PARTITION_EXPRESSION #创建表的当前分区方案 的CREATE TABLEor ALTER TABLE语句中使用的分区函数的表达式 。
  • SUBPARTITION_EXPRESSION #这对于定义表的子分区的子 PARTITION_EXPRESSION分区表达式和用于定义表分区的分区表达式的工作方式相同。如果表没有子分区,则此列为 NULL。
  • PARTITION_DESCRIPTION #该列用于RANGE和LIST分区。对于 RANGE分区,它包含分区VALUES LESS THAN子句中设置的值,该值可以是整数或MAXVALUE。对于LIST分区,此列包含在分区的VALUES IN子句中定义的值,该子句是用逗号分隔的整数值的列表。对于PARTITION_METHOD非RANGE或的 分区LIST,此列始终为 NULL。
  • TABLE_ROWS #分区中表的行数。对于分区InnoDB表,列中给出的行数TABLE_ROWS 仅是SQL优化中使用的估计值,可能并不总是准确的。对于NDB表,您还可以使用ndb_desc 实用程序获取此信息。
  • AVG_ROW_LENGTH #存储在该分区或子分区中的行的平均长度,以字节为单位。这与DATA_LENGTH除以 相同 TABLE_ROWS。对于NDB表,您还可以使用ndb_desc 实用程序获取此信息。
  • DATA_LENGTH #该分区或子分区中存储的所有行的总长度,以字节为单位;也就是说,存储在分区或子分区中的字节总数。对于NDB表,您还可以使用ndb_desc 实用程序获取此信息。
  • MAX_DATA_LENGTH #可以在此分区或子分区中存储的最大字节数。对于NDB表,您还可以使用ndb_desc 实用程序获取此信息。
    INDEX_LENGTH #此分区或子分区的索引文件的长度,以字节为单位。对于NDB表分区,无论表使用隐式分区还是显式分区, INDEX_LENGTH列值始终为0。但是,您可以使用ndb_desc实用程序获取等效信息 。
  • DATA_FREE #分配给分区或子分区但未使用的字节数。对于NDB表,您还可以使用ndb_desc 实用程序获取此信息。
  • CREATE_TIME #分区或子分区的创建时间。
  • UPDATE_TIME #分区或子分区上次修改的时间。
  • CHECK_TIME #上次检查该分区或子分区所属的表的时间。对于分区InnoDB表,该值始终为NULL。
  • CHECKSUM #校验和值(如果有);否则NULL。
  • PARTITION_COMMENT #注释的文本(如果分区有一个)。如果不是,则此值为空。分区注释的最大长度定义为1024个字符,并且该PARTITION_COMMENT列的显示宽度 也为1024,以匹配此限制的字符。
  • NODEGROUP #这是分区所属的节点组。这仅与NDB群集表有关;否则,该值始终为0。
  • TABLESPACE_NAME #分区所属的表空间的名称。该值始终为DEFAULT,除非表使用NDB存储引擎(请参阅本节末尾的 注释)。

PARTITIONS是非标准 INFORMATION_SCHEMA表。

15、PLUGINS表

该PLUGINS表提供有关服务器插件的信息。该PLUGINS表包含以下列:

  • PLUGIN_NAME #在诸如INSTALL PLUGIN和的 语句中用于引用插件的名称 UNINSTALL PLUGIN。
  • PLUGIN_VERSION #插件通用类型描述符中的版本。
  • PLUGIN_STATUS #插件状态,一ACTIVE, INACTIVE,DISABLED,或 DELETED。
  • PLUGIN_TYPE #该类型的插件,如STORAGE ENGINE, INFORMATION_SCHEMA,或 AUTHENTICATION。
  • PLUGIN_TYPE_VERSION #插件类型特定描述符中的版本。
  • PLUGIN_LIBRARY #插件共享库文件的名称。这是用于在诸如INSTALL PLUGIN和的 语句中引用插件文件的名称 UNINSTALL PLUGIN。该文件位于plugin_dir系统变量命名的目录中 。如果库名称为NULL,则将使用编译插件,并且无法使用进行卸载 UNINSTALL PLUGIN。PLUGIN_LIBRARY_VERSION #插件API接口版本。
  • PLUGIN_AUTHOR #插件作者。
  • PLUGIN_DESCRIPTION #插件的简短说明。
  • PLUGIN_LICENSE #插件的许可方式(例如, GPL)。
  • LOAD_OPTION #插件的加载方式。值是 OFF,ON, FORCE,或 FORCE_PLUS_PERMANENT。

16、PROCESSLIST表

MySQL进程列表指示服务器内部正在执行的一组线程当前正在执行的操作。该 PROCESSLIST表是过程信息的一种来源。该PROCESSLIST表包含以下列:

  • ID
    连接标识符。这Id与在SHOW PROCESSLIST语句的列中 显示的值,在PROCESSLIST_ID“性能模式”threads 表的列中显示的值相同,并由CONNECTION_ID()线程中的函数返回 。
  • USER
    发出该语句的MySQL用户。值表示 system user服务器产生的非客户端线程,用于在内部处理任务,例如,延迟行处理程序线程或副本主机上使用的I / O或SQL线程。对于system user,在该Host列中未指定主机。 unauthenticated user“线程”是指已与客户端连接关联但尚未对其进行客户端用户身份验证的线程。 event_scheduler是指监视计划的事件的线程(请参见 第22.4节“使用事件计划程序”)。
  • HOST
    发出该语句的客户端的主机名(除了 system user,没有主机)。TCP / IP连接的主机名以 格式报告, 以便更轻松地确定哪个客户端在做什么。 host_name:client_port
  • DB
    线程的默认数据库,或者NULL如果未选择任何数据库 。
  • COMMAND
    线程代表客户端执行的命令类型,或者Sleep会话处于空闲状态。有关线程命令的描述,请参见 第8.14节“检查服务器线程(进程)信息”。该列的值对应于客户端/服务器协议的 命令和 状态变量。
  • TIME
    线程处于其当前状态的时间(以秒为单位)。对于副本SQL线程,该值是最后一个复制事件的时间戳与副本主机的实时之间的秒数。
  • STATE
    指示线程正在执行的操作,事件或状态。大多数状态对应于非常快速的操作。如果线程在给定状态下停留许多秒钟,则可能存在需要调查的问题。
  • INFO
    线程正在执行的语句,或者NULL如果线程 不执行任何语句。该语句可能是发送到服务器的那条语句,或者是最内部的语句(如果该语句执行其他语句)。例如,如果一条CALL语句执行了正在执行一条SELECT语句的存储过程,则 该 INFO值将显示该 SELECT语句。

以下语句是等效的:
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
SHOW FULL PROCESSLIST;

17、PROFILING表

该PROFILING表提供语句分析信息。其内容对应于SHOW PROFILE和SHOW PROFILES 语句产生的信息。除非profiling 会话变量设置为1,否则该表为空。注意,该表已弃用;希望在将来的MySQL版本中将其删除,改用 性能模式 ;
该PROFILING表包含以下列:

  • QUERY_ID
    数字语句标识符。
  • SEQ
    一个序号,指示具有相同QUERY_ID值的行的显示顺序。
  • STATE
    行测量适用的分析状态。
  • DURATION
    语句执行在给定状态下保持多长时间(以秒为单位)。
  • CPU_USER, CPU_SYSTEM
    用户和系统CPU使用率,以秒为单位。
  • CONTEXT_VOLUNTARY, CONTEXT_INVOLUNTARY
    发生了多少自愿和非自愿上下文切换。
  • BLOCK_OPS_IN, BLOCK_OPS_OUT
    块输入和输出操作的数量。
  • MESSAGES_SENT, MESSAGES_RECEIVED
    发送和接收的通信消息数。
  • PAGE_FAULTS_MAJOR, PAGE_FAULTS_MINOR
    主要和次要页面错误的数量。
  • SWAPS
    发生了多少交换。
  • SOURCE_FUNCTION, SOURCE_FILE和 SOURCE_LINE
    指示配置文件状态在源代码中的何处执行的信息。

18、REFERENTIAL_CONSTRAINTS表

该REFERENTIAL_CONSTRAINTS表提供有关外键的信息。该REFERENTIAL_CONSTRAINTS表包含以下列:

  • CONSTRAINT_CATALOG
    约束所属的目录的名称。此值始终为def。
  • CONSTRAINT_SCHEMA
    约束所属的架构(数据库)的名称。
  • CONSTRAINT_NAME
    约束的名称。
  • UNIQUE_CONSTRAINT_CATALOG
    目录名称,包含该约束引用的唯一约束。此值始终为 def。
  • UNIQUE_CONSTRAINT_SCHEMA
    包含约束引用的唯一约束的架构(数据库)的名称。
  • UNIQUE_CONSTRAINT_NAME
    约束引用的唯一约束的名称。
  • MATCH_OPTION
    约束MATCH 属性的值。目前唯一有效的值为 NONE。
  • UPDATE_RULE
    约束ON UPDATE 属性的值。可能的值是CASCADE, SET NULL,SET DEFAULT, RESTRICT,NO ACTION。
  • DELETE_RULE
    约束ON DELETE 属性的值。可能的值是CASCADE, SET NULL,SET DEFAULT, RESTRICT,NO ACTION。
  • TABLE_NAME
    表的名称。该值与TABLE_CONSTRAINTS表中的相同 。
  • REFERENCED_TABLE_NAME
    约束引用的表的名称。

19、ROUTINES表

该ROUTINES表提供有关存储例程(存储过程和存储函数)的信息。该ROUTINES表不包括内置SQL函数或用户定义函数(UDF)。名为“ mysql.procName ” 的mysql.proc列表示与该INFORMATION_SCHEMA ROUTINES表列对应的表列(如果有)。
该ROUTINES表包含以下列:

  • SPECIFIC_NAME
    例程的名称。
  • ROUTINE_CATALOG
    例程所属的目录的名称。此值始终为def。
  • ROUTINE_SCHEMA
    例程所属的模式(数据库)的名称。
  • ROUTINE_NAME
    例程的名称。
  • ROUTINE_TYPE
    PROCEDURE用于存储过程, FUNCTION用于存储函数。
  • DATA_TYPE
    如果例程是存储的函数,则返回值数据类型。如果例程是存储过程,则此值为空。该DATA_TYPE值仅是类型名称,没有其他信息。该 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
  • CHARACTER_MAXIMUM_LENGTH
    对于存储的函数字符串返回值,以字符为单位的最大长度。如果例程是存储过程,则该值为NULL。
  • CHARACTER_OCTET_LENGTH
    对于存储的函数字符串返回值,最大长度(以字节为单位)。如果例程是存储过程,则该值为 NULL。
  • NUMERIC_PRECISION
    对于存储的函数数字返回值,数字精度。如果例程是存储过程,则该值为 NULL。
  • NUMERIC_SCALE
    对于存储的函数数字返回值,数字刻度。如果例程是存储过程,则该值为 NULL。
  • DATETIME_PRECISION
    对于存储的函数的时间返回值,分数秒精度。如果例程是存储过程,则该值为NULL。
  • CHARACTER_SET_NAME
    对于存储的函数字符串返回值,字符集名称。如果例程是存储过程,则该值为NULL。
  • COLLATION_NAME
    对于存储的函数字符串返回值,归类名称。如果例程是存储过程,则该值为NULL。
  • DTD_IDENTIFIER
    如果例程是存储的函数,则返回值数据类型。如果例程是存储过程,则此值为空。
    该DATA_TYPE值仅是类型名称,没有其他信息。该 DTD_IDENTIFIER值包含类型名称以及可能的其他信息,例如精度或长度。
  • ROUTINE_BODY
    例程定义所使用的语言。此值始终为SQL。
  • ROUTINE_DEFINITION
    例程执行的SQL语句的文本。
  • EXTERNAL_NAME
    此值始终为NULL。
  • EXTERNAL_LANGUAGE
    存储例程的语言。MySQLEXTERNAL_LANGUAGE因此计算 :
    如果mysql.proc.language=‘SQL’, EXTERNAL_LANGUAGE是 NULL,否则,EXTERNAL_LANGUAGE是中的内容mysql.proc.language。但是,我们还没有外部语言,因此始终如此 NULL。
  • PARAMETER_STYLE
    此值始终为SQL。
  • IS_DETERMINISTIC
    YES或NO,取决于例程是否用DETERMINISTIC特性定义 。
  • SQL_DATA_ACCESS
    例程的数据访问特征。值中的一个CONTAINS SQL,NO SQL,READS SQL DATA,或 MODIFIES SQL DATA。
  • SQL_PATH
    此值始终为NULL。
  • SECURITY_TYPE
    常规SQL SECURITY特征。值为DEFINER或之一 INVOKER。
  • CREATED
    创建例程的日期和时间。这是一个 TIMESTAMP值。
  • LAST_ALTERED
    例程的最后修改日期和时间。这是一个TIMESTAMP值。如果例程自创建以来尚未修改,则该值与该CREATED值相同。
  • SQL_MODE
    创建或更改例程时有效的SQL模式,在该模式下执行例程。有关允许的值,请参见第5.1.10节“服务器SQL模式”。
  • ROUTINE_COMMENT
    注释文本(如果例程包含一个)。如果不是,则此值为空。
  • DEFINER
    在DEFINER子句中命名的帐户(通常是创建例程的用户), 格式。 ‘user_name’@‘host_name’
  • CHARACTER_SET_CLIENT
    character_set_client创建例程时系统变量 的会话值 。
  • COLLATION_CONNECTION
    collation_connection创建例程时系统变量 的会话值 。
  • DATABASE_COLLATION
    与例程相关联的数据库的整理。

要查看有关例程的信息,您必须是例程DEFINER子句中命名的用户,或者有权 SELECT访问该 mysql.proc表。如果您没有例程本身的特权,则该ROUTINE_DEFINITION列的显示 值为 NULL。

该PARAMETERS 表中还提供了有关存储的函数返回值的信息。可以将存储函数的返回值行标识为 ORDINAL_POSITION值为0的行。

20、SCHEMATA表

模式是数据库,因此 SCHEMATA表提供了有关数据库的信息。该SCHEMATA表包含以下列:

  • CATALOG_NAME
    模式所属的目录的名称。此值始终为def。
  • SCHEMA_NAME
    模式的名称。
  • DEFAULT_CHARACTER_SET_NAME
    架构默认字符集。
  • DEFAULT_COLLATION_NAME
    模式默认排序规则。
  • SQL_PATH
    此值始终为NULL。

模式名称也可以从该SHOW DATABASES语句中获得。
mysql> show databases like ‘mysql’;
±-----------------+
| Database (mysql) |
±-----------------+
| mysql |
±-----------------+
1 row in set (0.00 sec)

21、SCHEMA_PRIVILEGES表

该SCHEMA_PRIVILEGES表提供有关架构(数据库)特权的信息。它从mysql.db系统表中获取其值。该SCHEMA_PRIVILEGES表包含以下列:

  • GRANTEE
    授予特权的帐户名称, 格式。 ‘user_name’@‘host_name’
  • TABLE_CATALOG
    模式所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA
    模式的名称。
  • PRIVILEGE_TYPE
    授予的特权。该值可以是可以在架构级别授予的任何特权;每行列出一个特权,因此,受授权者所拥有的每个模式特权都有一行。
  • IS_GRANTABLE
    YES如果用户具有 GRANT OPTION特权, NO否则。输出不会使用列出 GRANT OPTION为单独的行PRIVILEGE_TYPE=‘GRANT OPTION’。

22、SESSION_STATUS表

在GLOBAL_STATUS和 SESSION_STATUS表格提供了有关服务器状态变量的信息。它们的内容对应于SHOW GLOBAL STATUS和 SHOW SESSION STATUS语句产生的信息

23、SESSION_VARIABLES表

在GLOBAL_VARIABLES和 SESSION_VARIABLES表格提供了有关服务器状态变量的信息。它们的内容对应于SHOW GLOBAL VARIABLES和 SHOW SESSION VARIABLES语句产生的信息。VARIABLE_VALUE每个表 的列定义为VARCHAR(1024)。对于没有完全显示的具有非常长的值的变量,请使用SELECT变通办法。例如:SELECT @@GLOBAL.innodb_data_file_path;

24、STATISTICS表

该STATISTICS表提供有关表索引的信息。该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如果对整个列都进行了索引,则如果仅对该列进行部分索引,则为索引字符的数量。
  • PACKED
    指示密钥的包装方式。NULL如果不是这样。
  • NULLABLE
    包含YES该列是否包含NULL值,’'如果不包含 。
  • INDEX_TYPE
    使用的索引方法(BTREE, FULLTEXT,HASH, RTREE)。
  • COMMENT
    关于索引的信息未在其自己的列中描述,例如disabled是否禁用了索引。
  • INDEX_COMMENT
    COMMENT创建索引时,为索引 提供的任何注释均带有 属性。

以下语句是等效的:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = ‘tbl_name’
AND table_schema = ‘db_name’

SHOW INDEX
FROM tbl_name
FROM db_name

25、TABLES表

该TABLES表提供有关数据库中表的信息。该TABLES表包含以下列:

  • TABLE_CATALOG
    该表所属的目录的名称。此值始终为def。

  • TABLE_SCHEMA
    表所属的模式(数据库)的名称。

  • TABLE_NAME
    表的名称。

  • TABLE_TYPE
    BASE TABLE为一个表, VIEW用于一个视图,或SYSTEM VIEW为一个INFORMATION_SCHEMA 表。
    该TABLES表未列出 TEMPORARY表。

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

  • VERSION
    表.frm 文件的版本号。
    ROW_FORMAT
    该行的存储格式(Fixed, Dynamic,Compressed, Redundant,Compact)。对于 MyISAM表,Dynamic 对应于myisamchk -dvv报告为的内容Packed。InnoDB表格式可以是Redundant或者 Compact使用时的 Antelope文件格式,或者 Compressed或Dynamic 使用时Barracuda的文件格式。

  • TABLE_ROWS
    行数。一些存储引擎(例如 MyISAM)存储准确的计数。对于其他存储引擎(例如)InnoDB,该值是一个近似值,可能与实际值相差40%至50%。在这种情况下,请使用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群集,DATA_FREE显示磁盘上为磁盘上的磁盘数据表或碎片分配但未使用的空间。(该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显示last UPDATE, INSERT或 DELETE对InnoDB未分区表执行 的时间戳记值。对于MVCC,时间戳记值反映了 COMMIT时间,该时间被视为最后更新时间。重新启动服务器或从InnoDB数据字典缓存中删除表时,时间戳记不会保留。
    该UPDATE_TIME列还显示了分区InnoDB表的此信息。

  • CHECK_TIME
    上次检查表的时间。并非所有存储引擎这次都更新,在这种情况下,该值始终为 NULL。
    对于分区InnoDB表, CHECK_TIME始终为 NULL。

  • TABLE_COLLATION
    该表的默认排序规则。输出没有显式列出表的默认字符集,但是排序规则名称以字符集名称开头。

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

  • CREATE_OPTIONS
    与一起使用的额外选项CREATE TABLE。
    CREATE_OPTIONS显示 partitioned表是否已分区。
    CREATE_OPTIONS显示ENCRYPTION为在每个表文件表空间中创建的表指定的 子句。
    在禁用严格模式的情况下创建表时 ,如果不支持指定的行格式,则使用存储引擎的默认行格式。表的实际行格式在ROW_FORMAT 列中报告。CREATE_OPTIONS显示CREATE TABLE语句中指定的行格式。
    更改表的存储引擎时,不适用于新存储引擎的表选项将保留在表定义中,以便在必要时将具有其先前定义的选项的表恢复到原始存储引擎。该CREATE_OPTIONS列可能显示保留的选项。

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

26、TABLESPACES表

该表未使用。其他INFORMATION_SCHEMA 表可能提供相关信息:

  • 对于NDB,该 INFORMATION_SCHEMA FILES表提供与表空间有关的信息。
  • 对于InnoDB, INFORMATION_SCHEMA INNODB_SYS_TABLESPACES和 INNODB_SYS_DATAFILES表提供表空间元数据。

27、TABLE_CONSTRAINTS表

该TABLE_CONSTRAINTS表描述了哪些表具有约束。该TABLE_CONSTRAINTS表包含以下列:

  • CONSTRAINT_CATALOG
    约束所属的目录的名称。此值始终为def。
  • CONSTRAINT_SCHEMA
    约束所属的架构(数据库)的名称。
  • TABLE_SCHEMA
    表所属的模式(数据库)的名称。
  • TABLE_NAME
    表的名称。
  • CONSTRAINT_TYPE
    约束的类型。该值可以是 UNIQUE,PRIMARY KEY, FOREIGN KEY,或CHECK。这是CHAR(不是 ENUM)列。该 CHECK值直到MySQL支持才可用CHECK。
    该UNIQUE和PRIMARY KEY信息是一样的,你从一开始什么Key_name在输出列从 SHOW INDEX当 Non_unique列0。

28、TABLE_PRIVILEGES表

该TABLE_PRIVILEGES表提供有关表特权的信息。它从mysql.tables_priv系统表中获取其值 。该TABLE_PRIVILEGES表包含以下列:

  • GRANTEE
    授予特权的帐户名称, 格式。 ‘user_name’@‘host_name’
  • TABLE_CATALOG
    该表所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA
    表所属的模式(数据库)的名称。
  • TABLE_NAME
    表的名称。
  • PRIVILEGE_TYPE
    授予的特权。该值可以是可以在表级别上授予的任何特权。每行仅列出一个特权,因此,被授予者每张表拥有一行特权。
  • IS_GRANTABLE
    YES如果用户具有 GRANT OPTION特权, NO否则。输出不会使用列出 GRANT OPTION为单独的行PRIVILEGE_TYPE=‘GRANT OPTION’。

29、TRIGGERS表

该TRIGGERS表提供有关触发器的信息。要查看有关表触发器的信息,您必须具有TRIGGER 该表的特权。该TRIGGERS表包含以下列:

  • TRIGGER_CATALOG
    触发器所属的目录的名称。此值始终为def。
  • TRIGGER_SCHEMA
    触发器所属的架构(数据库)的名称。
  • TRIGGER_NAME
    触发器的名称。
  • EVENT_MANIPULATION
    触发事件。这是触发触发器的关联表上的操作类型。值为 INSERT(插入行), DELETE(删除行)或 UPDATE(修改行)。
    EVENT_OBJECT_CATALOG, EVENT_OBJECT_SCHEMA和 EVENT_OBJECT_TABLE
    每个触发器都与一个表正好关联。这些列分别指示此表所在的目录和架构(数据库)以及表名称。该 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)对于在MySQL 5.7.2或更高版本中NULL创建的触发器,对于在5.7.2之前创建的触发器,这是一个 值(分数为百分之一秒)。
  • SQL_MODE
    创建触发器时有效的SQL模式,在该模式下执行触发器。有关允许的值,请参见 第5.1.10节“服务器SQL模式”。
  • DEFINER
    在DEFINER子句中命名的帐户(通常是创建触发器的用户), 格式。 ‘user_name’@‘host_name’
  • CHARACTER_SET_CLIENT
    character_set_client创建触发器时系统变量 的会话值 。
  • COLLATION_CONNECTION
    collation_connection创建触发器时系统变量 的会话值 。
  • DATABASE_COLLATION
    与触发器相关联的数据库的整理。

30、USER_PRIVILEGES表

该USER_PRIVILEGES表提供有关全局特权的信息。它从mysql.user系统表中获取其值 。该USER_PRIVILEGES表包含以下列:

  • GRANTEE
    授予特权的帐户名称, 格式。 ‘user_name’@‘host_name’
  • TABLE_CATALOG
    目录的名称。此值始终为 def。
  • PRIVILEGE_TYPE
    授予的特权。该值可以是可以在全局级别上授予的任何特权。每行列出一个特权,因此,受赠方所拥有的每个全局特权都有一行。
  • IS_GRANTABLE
    YES如果用户具有 GRANT OPTION特权, NO否则。输出不会使用列出 GRANT OPTION为单独的行PRIVILEGE_TYPE=‘GRANT OPTION’。

31、VIEWS表

该VIEWS表提供有关数据库中的视图的信息。您必须具有SHOW VIEW访问此表的 权限。该VIEWS表包含以下列:

  • TABLE_CATALOG
    该视图所属的目录的名称。此值始终为def。
  • TABLE_SCHEMA
    视图所属的架构(数据库)的名称。
  • TABLE_NAME
    视图的名称。
  • VIEW_DEFINITION
    该SELECT提供该视图的定义语句。该列包含您在生成的Create Table列中看到的大部分内容SHOW CREATE VIEW。跳过前面的单词,SELECT 然后跳过这些单词WITH CHECK OPTION。
  • CHECK_OPTION
    CHECK_OPTION属性 的值。值中的一个NONE, CASCADE或LOCAL。
  • IS_UPDATABLE
    MySQL会设置一个标志,称为视图可更新性标志 CREATE VIEW。YES如果UPDATE和 DELETE(以及类似操作)对该视图合法,则将标志设置为(true) 。否则,该标志设置为 NO(false)。表中的 IS_UPDATABLE列 VIEWS显示此标志的状态。
    如果视图是不可更新的,这样的语句 UPDATE, DELETE以及 INSERT是非法的,将被拒绝。
    IS_UPDATABLE如果某个视图依赖于一个或多个其他视图,并且这些基础视图之一已更新,则 该标志可能不可靠。无论该 IS_UPDATABLE值是多少,服务器都会跟踪视图的可更新性,并正确拒绝对不可更新的视图进行数据更改操作。如果 IS_UPDATABLE由于基础视图的更改而导致视图的值变得不准确,则可以通过删除并重新创建视图来更新该值。
  • DEFINER
    创建视图的用户的帐户, 格式为。 ‘user_name’@‘host_name’
  • SECURITY_TYPE
    视图SQL SECURITY特征。值为DEFINER或之一 INVOKER。
  • CHARACTER_SET_CLIENT
    character_set_client创建视图时系统变量 的会话值 。
  • COLLATION_CONNECTION
    collation_connection创建视图时系统变量 的会话值 。

32、INNODB_LOCKS表

该INNODB_LOCKS表提供有关InnoDB 事务已请求但尚未获取的每个锁的信息,以及事务持有的阻止另一个事务的每个锁的信息。
注意:自MySQL 5.7.14起不推荐使用此表,并已在MySQL 8.0中删除。该INNODB_LOCKS表包含以下列:

  • LOCK_ID
    内部唯一的锁ID号 InnoDB。将其视为不透明的字符串。尽管LOCK_ID当前包含 TRX_ID,但是其中的数据格式 LOCK_ID随时可能更改。不要编写解析LOCK_ID值的应用程序 。
  • LOCK_TRX_ID
    持有锁的事务的ID。要获取有关交易的详细信息,请将此列与表的TRX_ID列 连接在一起 INNODB_TRX。
  • LOCK_MODE
    如何请求锁定。允许锁定模式描述符 S,X, IS,IX, GAP,AUTO_INC,和 UNKNOWN。锁定模式描述符可以组合使用以标识特定的锁定模式。
  • LOCK_TYPE
    锁的类型。允许的值 RECORD用于行级锁, TABLE用于表级锁。
  • LOCK_TABLE
    已锁定或包含锁定记录的表的名称。
  • LOCK_INDEX
    索引的名称,如果LOCK_TYPE为 RECORD;否则NULL。
  • LOCK_SPACE
    锁定记录的表空间ID,如果 LOCK_TYPE为RECORD;否则NULL。
  • LOCK_PAGE
    锁定记录的页码(如果 LOCK_TYPE为)RECORD;否则NULL。
  • LOCK_REC
    页面内锁定记录的堆号,如果 LOCK_TYPE为RECORD;否则NULL。
  • LOCK_DATA
    与锁关联的数据(如果有)。如果LOCK_TYPE为RECORD,则显示一个值,否则为NULL。显示锁定记录的主键值,以表示放置在主键索引上的锁。显示了锁定记录的二级索引值,用于放置在唯一二级索引上的锁。如果二级索引不是唯一的,则显示二级索引值并附加主键值。如果没有主键,则根据管理聚集索引使用的规则,LOCK_DATA显示所选唯一索引的键值或唯一 InnoDB内部行ID号。LOCK_DATA报告“最高伪记录”以获取对最高伪记录的锁定。如果包含锁定记录的页面不在缓冲池中,因为它是在持有锁定时被写入磁盘的,InnoDB则不会从磁盘中获取页面。而是LOCK_DATA报告 NULL。

33、INNODB_TRX表

使用此表可帮助诊断并发负载很大时发生的性能问题。
该INNODB_TRX表提供有关当前内部正在执行的每个事务的信息 InnoDB,包括事务是否正在等待锁,事务何时开始以及事务正在执行的SQL语句(如果有)。该INNODB_TRX表包含以下列:

  • TRX_ID
    内部唯一的交易ID号 InnoDB。这些ID不是为只读和非锁定的事务创建的。有关详细信息,请参见第8.5.3节“优化InnoDB只读事务”。
  • TRX_WEIGHT
    事务的权重,反映(但不一定是确切的计数)已更改的行数和该事务锁定的行数。要解决僵局,请 InnoDB选择权重最小的事务作为“受害者”进行回滚。更改了非事务表的事务被认为比其他事务更重,而与更改和锁定的行数无关。
  • TRX_STATE
    事务执行状态。允许值是 RUNNING,LOCK WAIT, ROLLING BACK,和 COMMITTING。
  • TRX_STARTED
    交易开始时间。
  • TRX_REQUESTED_LOCK_ID
    事务当前正在等待的锁的ID(如果TRX_STATE为)LOCK WAIT;否则NULL。要获取有关锁的详细信息,请将此列与表的LOCK_ID列 连接在一起 INNODB_LOCKS。
  • TRX_WAIT_STARTED
    事务开始等待锁的时间(如果 TRX_STATE是)LOCK WAIT;否则NULL。
  • TRX_MYSQL_THREAD_ID
    MySQL线程ID。要获取有关线程的详细信息,请将该列与表的ID列 连接起来INFORMATION_SCHEMA PROCESSLIST。
  • TRX_QUERY
    事务正在执行的SQL语句。
  • TRX_OPERATION_STATE
    交易的当前操作(如果有);否则 NULL。
  • TRX_TABLES_IN_USE
    InnoDB处理此事务的当前SQL语句时使用 的表数。
  • TRX_TABLES_LOCKED
    InnoDB当前SQL语句中行锁定 的表的数量。(由于这些是行锁,而不是表锁,因此即使某些行被锁定,通常仍可以从多个事务中读取和写入表。)
  • TRX_LOCK_STRUCTS
    事务保留的锁数。
  • TRX_LOCK_MEMORY_BYTES
    内存中此事务的锁结构占用的总大小。
  • TRX_ROWS_LOCKED
    此事务锁定的大概数目或行数。该值可能包括物理上存在但对事务不可见的删除标记行。
  • TRX_ROWS_MODIFIED
    此事务中已修改和已插入的行数。
  • TRX_CONCURRENCY_TICKETS
    由innodb_concurrency_tickets 系统变量指定的值,指示当前事务在被换出之前可以完成多少工作 。
  • TRX_ISOLATION_LEVEL
    当前事务的隔离级别。
  • TRX_UNIQUE_CHECKS
    当前事务是打开还是关闭唯一检查。例如,它们可能在批量数据加载期间关闭。
  • TRX_FOREIGN_KEY_CHECKS
    是否为当前事务打开或关闭外键检查。例如,它们可能在批量数据加载期间关闭。
  • TRX_LAST_FOREIGN_KEY_ERROR
    最后一个外键错误的详细错误消息(如果有);否则NULL。
  • TRX_ADAPTIVE_HASH_LATCHED
    自适应哈希索引是否被当前事务锁定。对自适应哈希索引搜索系统进行分区时,单个事务不会锁定整个自适应哈希索引。自适应哈希索引分区由控制 innodb_adaptive_hash_index_parts,默认情况下设置为8。
  • TRX_ADAPTIVE_HASH_TIMEOUT
    是立即放弃搜索锁存器的自适应哈希索引,还是在MySQL的调用之间保留它。当没有自适应哈希索引争用时,该值保持为零,并且语句保留锁存器,直到它们完成为止。在争用期间,它递减计数到零,并且语句在每次查找行后立即释放锁存器。对自适应哈希索引搜索系统进行分区(由控制 innodb_adaptive_hash_index_parts)时,该值保持为0。
  • TRX_IS_READ_ONLY
    值为1表示事务是只读的。
  • TRX_AUTOCOMMIT_NON_LOCKING
    值为1表示事务是 SELECT不使用FOR UPDATEorLOCK IN SHARED MODE子句的语句,并且正在autocommit启用状态下执行, 因此事务仅包含该一条语句。当此列TRX_IS_READ_ONLY都为1时,将 InnoDB优化事务以减少与更改表数据的事务相关的开销。

34、INNODB_SYS_DATAFILES表

该INNODB_SYS_DATAFILES表提供了InnoDB 每表文件和常规表空间的数据文件路径信息,等同SYS_DATAFILES于InnoDB数据字典中表中的 信息。有关相关用法信息和示例,注意:
该INFORMATION_SCHEMA FILES表报告所有InnoDB表空间类型的元数据,包括每个表文件表空间,常规表空间,系统表空间,临时表空间和撤消表空间(如果存在)。该INNODB_SYS_DATAFILES表包含以下列:

  • SPACE
    表空间ID。
  • PATH
    表空间数据文件路径。如果 在MySQL数据目录之外的位置创建了每表文件表空间,则该路径值为完全限定的目录路径。否则,该路径是相对于数据目录的。

使用该INFORMATION_SCHEMA COLUMNS表或该 SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

35、INNODB_FT_CONFIG表

该INNODB_FT_CONFIG表提供有关表的FULLTEXT索引和相关处理的元数据InnoDB。该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称);例如 test/articles。INFORMATION_SCHEMA FULLTEXT索引表”。
该INNODB_FT_CONFIG表包含以下列:

  • KEY
    指定InnoDB包含FULLTEXT索引的表 的元数据项的名称 。
    此列的值可能会更改,具体取决于对InnoDB全文处理进行性能调整和调试的需求 。关键字名称及其含义包括:
    optimize_checkpoint_limit:OPTIMIZE TABLE运行停止的秒数。
    synced_doc_id:下一个 DOC_ID要发行。
    stopword_table_name: database/table用户定义的停用词表的名称。VALUE 如果没有用户定义的停用词表,则该列为空。
    use_stopword:指示是否使用停用词表,该词在FULLTEXT创建索引时定义 。
  • VALUE
    与相应KEY列关联的值 ,反映FULLTEXT 了InnoDB表索引方面的某些限制或当前值。

36、INNODB_SYS_VIRTUAL表

该INNODB_SYS_VIRTUAL表提供有关InnoDB 虚拟生成的列以及虚拟生成的列所基于的列的元数据,等同 SYS_VIRTUAL于InnoDB数据字典中表中的 信息。
INNODB_SYS_VIRTUAL虚拟生成的列所基于的每一列在表中都会 出现一行。该INNODB_SYS_VIRTUAL表包含以下列:

  • TABLE_ID
    代表与虚拟列关联的表的标识符;与相同的值 INNODB_SYS_TABLES.TABLE_ID。
  • POS
    虚拟生成列 的位置值 。该值很大,因为它会编码列序列号和顺序位置。用于计算值的公式使用按位运算:
    ((nth virtual generated column for the InnoDB instance + 1) << 16)
    + the ordinal position of the virtual generated column
    例如,如果实例中的第一虚拟生成列 InnoDB是表的第三列,则公式为(0 + 1) << 16) + 2。InnoDB实例中的第一虚拟生成列 始终为数字0。作为表中的第三列,虚拟生成列的顺序位置为2。顺序位置从0开始计数。
  • BASE_POS
    虚拟生成的列所基于的列的顺序位置。

37、INNODB_CMP表

在INNODB_CMP与 INNODB_CMP_RESET表提供了相关的操作状态信息 压缩 InnoDB表。在INNODB_CMP与 INNODB_CMP_RESET表有这些列:

  • PAGE_SIZE
    压缩的页面大小(以字节为单位)。
  • COMPRESS_OPS
    B树大小的页面 PAGE_SIZE已被压缩的次数。每当创建一个空页面或未压缩的修改日志空间用完时,页面就会被压缩。
  • COMPRESS_OPS_OK
    B树大小的页面 PAGE_SIZE已成功压缩的次数。此计数不应超过 COMPRESS_OPS。
  • COMPRESS_TIME
    尝试压缩size为B的树的总时间(以秒为单位)PAGE_SIZE。
  • UNCOMPRESS_OPS
    B树大小的页面 PAGE_SIZE已被解压缩的次数。每当压缩失败或在缓冲池中不存在未压缩的页面时,B-tree页面都将不被压缩。
  • UNCOMPRESS_TIME
    解压缩size为的B树页面所用的总时间(以秒为单位)PAGE_SIZE。

38、INNODB_FT_BEING_DELETED表

该INNODB_FT_BEING_DELETED表提供了该表的快照 INNODB_FT_DELETED;仅在OPTIMIZE TABLE 维护操作期间使用。当OPTIMIZE TABLE运行时,该 INNODB_FT_BEING_DELETED表被清空,并且DOC_ID值是从除去 INNODB_FT_DELETED表。由于的内容INNODB_FT_BEING_DELETED 通常具有较短的生存期,因此该表的监视或调试实用程序有限。该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称);例如 test/articles。输出看起来类似于为INNODB_FT_DELETED表提供的示例 。该INNODB_FT_BEING_DELETED表包含以下列:

  • DOC_ID
    正在删除的行的文档ID。该值可能反映您为基础表定义的ID列的值,也可以是InnoDB当表不包含合适的列时所生成的序列值。在执行文本搜索时,将使用此值来跳过INNODB_FT_INDEX_TABLE表中的行, 然后FULLTEXT通过OPTIMIZE TABLE语句将删除的行的数据从索引中 物理删除 。

39、INNODB_CMP_RESET表

在INNODB_CMP与 INNODB_CMP_RESET表提供了相关的操作状态信息 压缩 InnoDB表。在INNODB_CMP与 INNODB_CMP_RESET表有这些列:

  • PAGE_SIZE
    压缩的页面大小(以字节为单位)。
  • COMPRESS_OPS
    B树大小的页面 PAGE_SIZE已被压缩的次数。每当创建一个空页面或未压缩的修改日志空间用完时,页面就会被压缩。
  • COMPRESS_OPS_OK
    B树大小的页面 PAGE_SIZE已成功压缩的次数。此计数不应超过 COMPRESS_OPS。
  • COMPRESS_TIME
    尝试压缩size为B的树的总时间(以秒为单位)PAGE_SIZE。
  • UNCOMPRESS_OPS
    B树大小的页面 PAGE_SIZE已被解压缩的次数。每当压缩失败或在缓冲池中不存在未压缩的页面时,B-tree页面都将不被压缩。
  • UNCOMPRESS_TIME
    解压缩size为的B树页面所用的总时间(以秒为单位)PAGE_SIZE。

40、INNODB_CMP_PER_INDEX表

在INNODB_CMP_PER_INDEX与 INNODB_CMP_PER_INDEX_RESET表提供了相关的操作状态信息 压缩 InnoDB表和索引,与数据库,表和索引的每个组合单独的统计数据,以帮助您评估特定表的性能和压缩的实用性。
对于压缩InnoDB表,表数据和所有辅助索引均被压缩。在这种情况下,表数据仅被视为另一索引,该索引恰好包含所有列:聚集索引。
在INNODB_CMP_PER_INDEX与 INNODB_CMP_PER_INDEX_RESET表有这些列:

  • DATABASE_NAME
    包含适用表的架构(数据库)。
  • TABLE_NAME
    监视压缩统计信息的表。
  • INDEX_NAME
    监视压缩统计信息的索引。
  • COMPRESS_OPS
    尝试的压缩操作数。 网页每当创建一个空的页面或压缩未压缩修改日志的空间用完。
  • COMPRESS_OPS_OK
    成功进行压缩操作的次数。减去该COMPRESS_OPS值可得出压缩失败的次数 。用该COMPRESS_OPS 值除以得到压缩失败的百分比。
  • COMPRESS_TIME
    该索引中用于压缩数据的总时间(以秒为单位)。
  • UNCOMPRESS_OPS
    执行的解压缩操作数。压缩的 InnoDB网页未压缩的压缩时 出现故障,或者在第一时间压缩页面的访问 缓冲池和未压缩的页面不存在。
  • UNCOMPRESS_TIME
    用于解压缩此索引中的数据的总时间(以秒为单位)。

41、INNODB_CMPMEM_RESET表

在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
    用于重新定位size块的总时间(以微秒为单位)PAGE_SIZE。从表中读取将 INNODB_CMPMEM_RESET重置此计数。

42、INNODB_FT_DELETED表

该INNODB_FT_DELETED表存储从表的FULLTEXT索引中删除的行InnoDB。为了避免在DML操作中为索引进行昂贵的索引重组 InnoDB FULLTEXT,有关新删除的单词的信息将单独存储,在进行文本搜索时会从搜索结果中过滤掉,并且仅在发布表OPTIMIZE TABLE语句 时才从主搜索索引中删除 InnoDB。有关更多信息,请参见 优化InnoDB全文索引。
该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称);例如 test/articles。
INFORMATION_SCHEMA FULLTEXT索引表”。
该INNODB_FT_DELETED表包含以下列:

  • DOC_ID
    新删除的行的文档ID。该值可能反映您为基础表定义的ID列的值,也可以是InnoDB当表不包含合适的列时所生成的序列值 。在执行文本搜索时,将使用此值来跳过INNODB_FT_INDEX_TABLE 表中的行,然后FULLTEXT通过OPTIMIZE TABLE语句将删除的行的数据从索引中 物理删除。

43、INNODB_BUFFER_PAGE_LRU表

该INNODB_BUFFER_PAGE_LRU表提供有关InnoDB 缓冲池中页面的信息 ;特别是,如何在LRU列表中对它们进行排序,以确定在缓冲池已满时要从缓冲池中逐出哪些页面 。
该INNODB_BUFFER_PAGE_LRU表与该表具有相同的列 INNODB_BUFFER_PAGE,除了该INNODB_BUFFER_PAGE_LRU表具有 LRU_POSITION和COMPRESSED 列而不是BLOCK_ID和 PAGE_STATE列。
查询INNODB_BUFFER_PAGE_LRU 表可能会影响性能。除非您了解性能影响并确定可接受,否则请不要在生产系统上查询此表。为避免影响生产系统的性能,请重现要调查的问题并在测试实例上查询缓冲池统计信息。
该INNODB_BUFFER_PAGE_LRU表包含以下列:

  • POOL_ID
    缓冲池ID。这是一个区分多个缓冲池实例的标识符。
  • LRU_POSITION
    页面在LRU列表中的位置。
  • SPACE
    表空间ID;与相同的值 INNODB_SYS_TABLES.SPACE。
  • PAGE_NUMBER
    页码。
  • PAGE_TYPE
    页面类型。下表显示了允许的值。
    MySQL之自带四库之information_schema库_第3张图片
  • FLUSH_TYPE
    冲洗类型。
  • FIX_COUNT
    缓冲池中使用此块的线程数。如果为零,则该块有资格被驱逐。
  • IS_HASHED
    此页面上是否已构建哈希索引。
  • NEWEST_MODIFICATION
    最年轻的修改的日志序列号。
  • OLDEST_MODIFICATION
    最旧的修改的日志序列号。
  • ACCESS_TIME
    用于判断页面的首次访问时间的抽象数字。
  • TABLE_NAME
    页面所属表的名称。此列仅适用于PAGE_TYPE 值为的页面INDEX。
  • 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
    freed_page_clock块最后位于LRU列表开头时 的计数器值。该freed_page_clock计数器跟踪从LRU列表的末尾去除的块数。

44、INNODB_LOCK_WAITS表

该INNODB_LOCK_WAITS表为每个被阻止的InnoDB 事务包含一个或多个行,指示它已请求的锁以及正在阻止该请求的所有锁。
注意
自MySQL 5.7.14起不推荐使用此表,并已在MySQL 8.0中删除。

该INNODB_LOCK_WAITS表包含以下列:

  • REQUESTING_TRX_ID
    请求(阻止)交易的ID。
  • REQUESTED_LOCK_ID
    事务正在等待的锁的ID。要获取有关锁的详细信息,请将此列与表的LOCK_ID列 连接在一起 INNODB_LOCKS。
  • BLOCKING_TRX_ID
    阻止交易的ID。
  • BLOCKING_LOCK_ID
    事务持有的锁的ID,阻止另一个事务继续进行。要获取有关锁的详细信息,请将此列与表的LOCK_ID列连接在一起INNODB_LOCKS。

45、INNODB_TEMP_TABLE_INFO表

该INNODB_TEMP_TABLE_INFO表提供有关InnoDB 在InnoDB 实例中处于活动状态的用户创建的临时表的信息。它不提供有关InnoDB优化器使用的内部临时表的信息 。该INNODB_TEMP_TABLE_INFO表是在第一次查询时创建的,仅存在于内存中,并且不会持久存储到磁盘中。该表主要用于专家级监视。
该INNODB_TEMP_TABLE_INFO表包含以下列:

  • TABLE_ID
    临时表的表ID。
  • NAME
    临时表的名称。
  • N_COLS
    临时表中的列数。数包括由创建了三个隐藏列 InnoDB(DB_ROW_ID, DB_TRX_ID,和 DB_ROLL_PTR)。
  • SPACE
    临时表所在的临时表空间的ID。在5.7中,未压缩的 InnoDB临时表位于共享的临时表空间中。共享临时表空间的数据文件由innodb_temp_data_file_path 系统变量定义 。默认情况下,共享临时表空间只有一个数据文件,名为 ibtmp1,位于数据目录中。压缩的临时表位于由定义的临时文件目录中的单独的每表文件表空间中tmpdir。临时表空间ID是一个非零值,该值在服务器重新启动时动态生成。
  • PER_TABLE_TABLESPACE
    值TRUE表示临时表位于单独的每表文件表空间中。值FALSE表示临时表位于共享的临时表空间中。
  • IS_COMPRESSED
    值TRUE表示临时表已压缩。

46、INNODB_SYS_INDEXES表

该INNODB_SYS_INDEXES表提供有关InnoDB索引的元数据,等同SYS_INDEXES 于InnoDB数据字典中内部表中的信息。
该INNODB_SYS_INDEXES表包含以下列:

  • INDEX_ID
    索引的标识符。索引标识符在实例中的所有数据库中都是唯一的。
  • NAME
    索引名称。由隐式创建的大多数索引 InnoDB具有一致的名称,但是索引名称不一定是唯一的。实施例: PRIMARY用于一主键索引, GEN_CLUST_INDEX用于表示当没有指定的主键索引,并且 ID_IND,FOR_IND和 REF_IND为外键约束。
  • TABLE_ID
    代表与索引关联的表的标识符;与相同的值 INNODB_SYS_TABLES.TABLE_ID。
  • TYPE
    从标识索引类型的位级别信息派生的数值。0 =非唯一二级索引;1 =自动生成的聚集索引(GEN_CLUST_INDEX);2 =唯一非聚集索引;3 =聚集索引;32 =全文索引;64 =空间索引;128 =虚拟生成列上的二级索引 。
  • N_FIELDS
    索引键中的列数。对于 GEN_CLUST_INDEX索引,此值是0,因为索引是使用人工值而不是实际表列创建的。
  • PAGE_NO
    索引B树的根页号。对于全文索引,该PAGE_NO列未使用并设置为-1(FIL_NULL),因为全文索引位于多个B树(辅助表)中。
  • SPACE
    索引所在的表空间的标识符。0表示InnoDB 系统表空间。其他任何数字都代表一个表,该表是用每个表文件 模式的单独.ibd文件 创建的。声明后,此标识符保持不变 。由于表的所有索引都与该表位于同一表空间中,因此该值不一定是唯一的。 TRUNCATE TABLE
  • MERGE_THRESHOLD
    索引页的合并阈值。如果索引页中的数据量低于MERGE_THRESHOLD 删除行或通过更新操作缩短行时的 值,请InnoDB尝试将索引页与相邻的索引页合并。默认阈值为50%。

47、INNODB_SYS_TABLES表

该INNODB_SYS_TABLES表提供有关InnoDB表的元数据,等同SYS_TABLES于InnoDB数据字典中表的 信息。
该INNODB_SYS_TABLES表包含以下列:

  • TABLE_ID
    InnoDB表 的标识符。该值在实例中的所有数据库中都是唯一的。
  • NAME
    表的名称,在适当的地方(例如test/t1),以模式(数据库)名称开头。数据库和用户表的名称与最初定义的名称相同,可能受lower_case_table_names 设置影响 。
  • FLAG
    一个数字值,表示有关表格式和存储特征的位级别信息。
  • N_COLS
    表中的列数。报告的数字包括由创建了三个隐藏列 InnoDB(DB_ROW_ID, DB_TRX_ID,和 DB_ROLL_PTR)。报告的数字还包括虚拟生成的列(如果存在)。
  • SPACE
    表所在的表空间的标识符。0表示InnoDB 系统表空间。任何其他数字都表示 每个表文件表 空间或常规表空间。TRUNCATE TABLE 声明后,此标识符保持不变。对于每表文件表空间,此标识符对于实例中所有数据库中的表都是唯一的。
  • FILE_FORMAT
    表格的文件格式(Antelope或 Barracuda)。
  • ROW_FORMAT
    该表的行格式(Compact, Redundant,Dynamic,或 Compressed)。
  • ZIP_PAGE_SIZE
    邮政编码页面大小。仅适用于行格式为的表 Compressed。
  • SPACE_TYPE
    该表所属的表空间的类型。可能的值包括System系统表空间,General常规表空间和Single每表文件表空间。表分配给系统表空间使用 CREATE TABLE或拥有 的。

48、INNODB_SYS_FIELDS表

该INNODB_SYS_FIELDS表提供有关InnoDB索引的关键列(字段)的元数据 ,等同SYS_FIELDS于InnoDB数据字典中表的 信息。
该INNODB_SYS_FIELDS表包含以下列:

  • INDEX_ID
    与该键字段关联的索引的标识符;与相同的值 INNODB_SYS_INDEXES.INDEX_ID。
  • NAME
    表中原始列的名称;与相同的值INNODB_SYS_COLUMNS.NAME。
  • POS
    键字段在索引中的顺序位置,从0开始,并按顺序递增。当删除一列时,其余的列将重新排序,以使序列没有间隙。

49、INNODB_CMP_PER_INDEX_RESET表

在INNODB_CMP_PER_INDEX与 INNODB_CMP_PER_INDEX_RESET表提供了相关的操作状态信息 压缩 InnoDB表和索引,与数据库,表和索引的每个组合单独的统计数据,以帮助您评估特定表的性能和压缩的实用性。
对于压缩InnoDB表,表数据和所有辅助索引均被压缩。在这种情况下,表数据仅被视为另一索引,该索引恰好包含所有列:聚集索引。
在INNODB_CMP_PER_INDEX与 INNODB_CMP_PER_INDEX_RESET表有这些列:

  • DATABASE_NAME
    包含适用表的架构(数据库)。
  • TABLE_NAME
    监视压缩统计信息的表。
  • INDEX_NAME
    监视压缩统计信息的索引。
  • COMPRESS_OPS
    尝试的压缩操作数。 网页每当创建一个空的页面或压缩未压缩修改日志的空间用完。
  • COMPRESS_OPS_OK
    成功进行压缩操作的次数。减去该COMPRESS_OPS值可得出压缩失败的次数 。用该COMPRESS_OPS 值除以得到压缩失败的百分比。
  • COMPRESS_TIME
    该索引中用于压缩数据的总时间(以秒为单位)。
  • UNCOMPRESS_OPS
    执行的解压缩操作数。压缩的 InnoDB网页未压缩的压缩时 出现故障,或者在第一时间压缩页面的访问 缓冲池和未压缩的页面不存在。
  • UNCOMPRESS_TIME
    用于解压缩此索引中的数据的总时间(以秒为单位)。

50、INNODB_BUFFER_PAGE表

该INNODB_BUFFER_PAGE表列出了每个信息页的InnoDB 缓冲池。
警告
查询INNODB_BUFFER_PAGE 表可能会影响性能。除非您了解性能影响并确定可接受,否则请不要在生产系统上查询此表。为避免影响生产系统的性能,请重现要调查的问题并在测试实例上查询缓冲池统计信息。

该INNODB_BUFFER_PAGE表包含以下列:

  • POOL_ID
    缓冲池ID。这是一个区分多个缓冲池实例的标识符。
  • BLOCK_ID
    缓冲池块ID。
  • SPACE
    表空间ID;与相同的值 INNODB_SYS_TABLES.SPACE。
  • PAGE_NUMBER
    页码。
  • PAGE_TYPE
    页面类型。下表显示了允许的值。
    表23.1 INNODB_BUFFER_PAGE.PAGE_TYPE值
    MySQL之自带四库之information_schema库_第4张图片
  • FLUSH_TYPE
    冲洗类型。
  • FIX_COUNT
    缓冲池中使用此块的线程数。如果为零,则该块有资格被驱逐。
  • IS_HASHED
    此页面上是否已构建哈希索引。
  • NEWEST_MODIFICATION
    最年轻的修改的日志序列号。
  • OLDEST_MODIFICATION
    最旧的修改的日志序列号。
  • ACCESS_TIME
    用于判断页面的首次访问时间的抽象数字。
  • TABLE_NAME
    页面所属表的名称。此列仅适用于PAGE_TYPE 值为的页面INDEX。
  • INDEX_NAME
    页面所属索引的名称。这可以是聚集索引或辅助索引的名称。此列仅适用于PAGE_TYPE 值为的页面INDEX。
  • NUMBER_RECORDS
    页面内的记录数。
  • DATA_SIZE
    记录大小的总和。此列仅适用于PAGE_TYPE值为的 页面INDEX。
  • COMPRESSED_SIZE
    压缩的页面大小。NULL用于未压缩的页面。
    PAGE_STATE
  • 页面状态。下表显示了允许的值。
    MySQL之自带四库之information_schema库_第5张图片
  • IO_FIX
    此页面是否有任何I / O待处理: IO_NONE=无待处理I / O, IO_READ=读取待处理, IO_WRITE=写入待处理。
  • IS_OLD
    该块是否在LRU列表中旧块的子列表中。
  • FREE_PAGE_CLOCK
    freed_page_clock块最后位于LRU列表开头时 的计数器值。该freed_page_clock计数器跟踪从LRU列表的末尾去除的块数。

51、INNODB_FT_DEFAULT_STOPWORD表

该INNODB_FT_DEFAULT_STOPWORD表包含在 表上 创建索引时默认使用 的停用词列表。FULLTEXTInnoDBInnoDB
该INNODB_FT_DEFAULT_STOPWORD表包含以下列:

  • value
    默认情况下用作表FULLTEXT索引 的停用词的单词 InnoDB。如果您使用innodb_ft_server_stopword_table 或 innodb_ft_user_stopword_table 系统变量覆盖默认停用词处理,则不会使用此选项 。

52、INNODB_FT_INDEX_TABLE表

该INNODB_FT_INDEX_TABLE表提供了有关用于处理文本搜索靠在所述倒排索引信息FULLTEXT的索引 InnoDB表。
该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称);例如 test/articles。
该INNODB_FT_INDEX_TABLE表包含以下列:

  • WORD
    从作为组成部分的列文本中提取的单词FULLTEXT。
  • FIRST_DOC_ID
    该单词出现在FULLTEXT索引中的第一个文档ID 。
  • LAST_DOC_ID
    该单词出现在FULLTEXT索引中的最后一个文档ID 。
  • DOC_COUNT
    该词在FULLTEXT索引中出现的行数 。同一个词可以为每个组合的高速缓存表中出现多次,一次DOC_ID和 POSITION值。
  • DOC_ID
    包含单词的行的文档ID。该值可能反映您为基础表定义的ID列的值,也可以是InnoDB当表不包含合适的列时所生成的序列值。
  • POSITION
    该单词的特定实例在DOC_ID值所标识的相关文档中的位置 。

53、INNODB_FT_INDEX_CACHE表

该INNODB_FT_INDEX_CACHE表提供有关FULLTEXT索引中新插入的行的令牌信息 。为了避免在DML操作期间进行昂贵的索引重组,有关新索引词的信息将单独存储,并且仅在OPTIMIZE TABLE运行,服务器关闭或高速缓存大小超过innodb_ft_cache_size或 所定义的限制 时才与主搜索索引组合innodb_ft_total_cache_size系统变量。
该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称);例如 test/articles。
该INNODB_FT_INDEX_CACHE表包含以下列:

  • WORD
    从新插入的行的文本中提取的单词。
  • FIRST_DOC_ID
    该单词出现在FULLTEXT索引中的第一个文档ID 。
  • LAST_DOC_ID
    该单词出现在FULLTEXT索引中的最后一个文档ID 。
  • DOC_COUNT
    该词在FULLTEXT索引中出现的行数 。同一个词可以为每个组合的高速缓存表中出现多次,一次DOC_ID和 POSITION值。
  • DOC_ID
    新插入的行的文档ID。该值可能反映您为基础表定义的ID列的值,也可以是InnoDB当表不包含合适的列时所生成的序列值 。
  • POSITION
    该单词的特定实例在DOC_ID值所标识的相关文档中的位置 。该值不代表绝对位置;它是添加到该POSITION单词先前实例的的偏移量 。

54、INNODB_SYS_TABLESPACES表

该INNODB_SYS_TABLESPACES表提供有关InnoDB每表文件和常规表空间的元数据,等同 SYS_TABLESPACES于InnoDB数据字典中表中的 信息。
注意
该INFORMATION_SCHEMA FILES表报告所有InnoDB表空间类型的元数据,包括每个表文件表空间,常规表空间,系统表空间,临时表空间和撤消表空间(如果存在)。

该INNODB_SYS_TABLESPACES表包含以下列:

  • SPACE
    表空间ID。
  • NAME
    模式(数据库)和表名。
  • FLAG
    一个数字值,表示有关表空间格式和存储特征的位级别信息。
  • FILE_FORMAT
    表空间文件格式。例如, Antelope, Barracuda或 Any (常规表空间支持任何行格式)。该字段中的数据是根据.ibd文件中存在的表空间标志信息来解释的。有关InnoDB文件格式的更多信息 ,请参见 第14.10节“ InnoDB文件格式管理”。
  • ROW_FORMAT
    表空间行格式(Compact or Redundant,Dynamic,或 Compressed)。该列中的数据是根据.ibd 文件中存在的表空间标志信息来解释的。
  • PAGE_SIZE
    表空间页面大小。该列中的数据是根据.ibd 文件中存在的表空间标志信息来解释的。
  • ZIP_PAGE_SIZE
    表空间zip页面的大小。该列中的数据是根据.ibd 文件中存在的表空间标志信息来解释的。
  • SPACE_TYPE
    表空间的类型。可能的值包括 General常规表空间和 Single每表文件表空间。
  • FS_BLOCK_SIZE
    文件系统块大小,即用于打孔的单位大小。此列与 InnoDB 透明页面压缩功能有关。
  • FILE_SIZE
    文件的视在大小,代表文件的最大大小,未压缩。此列与 InnoDB 透明页面压缩功能有关。
  • ALLOCATED_SIZE
    文件的实际大小,即磁盘上分配的空间量。此列与 InnoDB 透明页面压缩功能有关。

55、INNODB_METRICS表

该INNODB_METRICS表提供了各种各样的InnoDB性能信息,补充了的Performance Schema表的特定重点领域InnoDB。通过简单的查询,您可以检查系统的整体运行状况。使用更详细的查询,您可以诊断问题,例如性能瓶颈,资源短缺和应用程序问题。
每个监视器代表InnoDB源代码中用于收集计数器信息的一个点 。每个计数器都可以启动,停止和重置。您还可以使用它们的公用模块名称对一组计数器执行这些操作。
默认情况下,收集的数据相对较少。要启动,停止和复位计数器,系统变量的集合中的一个 innodb_monitor_enable, innodb_monitor_disable, innodb_monitor_reset或 innodb_monitor_reset_all使用计数器的名称,该模块的名称,使用这样的名称的通配符匹配“ % ”字符,或特殊关键字all。
该INNODB_METRICS表包含以下列:

  • NAME
    计数器的唯一名称。
  • SUBSYSTEM
    InnoDB指标适用 的方面。
  • COUNT
    自启用计数器以来的值。
  • MAX_COUNT
    自启用计数器以来的最大值。
  • MIN_COUNT
    自启用计数器以来的最小值。
  • AVG_COUNT
    自启用计数器以来的平均值。
  • COUNT_RESET
    自上次重置以来的计数器值。(本 _RESET栏目像一个秒表一圈柜台:您可以测量一段时间间隔内的活动,而累积的数字仍然在使用 COUNT,MAX_COUNT等。)
  • MAX_COUNT_RESET
    自上次重置以来的最大计数器值。
  • MIN_COUNT_RESET
    自上次重置以来的最小计数器值。
  • AVG_COUNT_RESET
    自上次重置以来的平均计数器值。
  • TIME_ENABLED
    上次开始的时间戳。
  • TIME_DISABLED
    最后一站的时间戳。
  • TIME_ELAPSED
    自计数器启动以来经过的时间(以秒为单位)。
  • TIME_RESET
    上次重置的时间戳。
  • STATUS
    计数器是仍在运行(enabled)还是已停止(disabled)。
  • TYPE
    物料是累积计数器还是测量某些资源的当前值。
  • COMMENT
    计数器说明。

56、INNODB_SYS_FOREIGN_COLS表

该INNODB_SYS_FOREIGN_COLS表提供有关InnoDB外键列的状态信息 ,等同SYS_FOREIGN_COLS于InnoDB数据字典中表中的信息。
该INNODB_SYS_FOREIGN_COLS表包含以下列:

  • ID
    与此索引键字段关联的外键索引,使用与相同的值 INNODB_SYS_FOREIGN.ID。
  • FOR_COL_NAME
    子表中关联列的名称。
  • REF_COL_NAME
    父表中关联列的名称。
  • POS
    此键字段在外键索引中的顺序位置,从0开始。

57、INNODB_CMPMEM表

在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
    用于重新定位size块的总时间(以微秒为单位)PAGE_SIZE。从表中读取将 INNODB_CMPMEM_RESET重置此计数。

58、INNODB_BUFFER_POOL_STATS表

该INNODB_BUFFER_POOL_STATS表提供了SHOW ENGINE INNODB STATUS输出中提供的许多相同的缓冲池信息 。使用InnoDB缓冲池 服务器状态变量也可以获取很多相同的信息。
使缓冲池中的页面“年轻” 或“不年轻”的想法是指在缓冲池数据结构的开头和结尾处的子列表之间传输页面。“不年轻”的页面 需要更长的时间才能从缓冲池中删除,而“不年轻”的页面则更靠近逐出点。
该INNODB_BUFFER_POOL_STATS表包含以下列:

  • POOL_ID
    缓冲池ID。这是一个区分多个缓冲池实例的标识符。
  • POOL_SIZE
    该InnoDB缓冲池大小的页面。
  • FREE_BUFFERS
    InnoDB 缓冲池中 的可用页数。
  • DATABASE_PAGES
    InnoDB缓冲池中包含数据 的页面数。该数字包括脏页和干净页。
  • OLD_DATABASE_PAGES
    old缓冲池子列表中 的页数。
  • MODIFIED_DATABASE_PAGES
    已修改(脏)数据库页面的数量。
  • PENDING_DECOMPRESS
    等待减压的页面数。
  • PENDING_READS
    暂挂读取的数量。
  • PENDING_FLUSH_LRU
    LRU中等待刷新的页面数。
  • 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
    在当前间隔中解压缩的页面数。

59、INNODB_SYS_COLUMNS表

该INNODB_SYS_COLUMNS表提供有关InnoDB表列的元数据,等同SYS_COLUMNS于InnoDB数据字典中表中的信息。
该INNODB_SYS_COLUMNS表包含以下列:

  • TABLE_ID
    代表与该列关联的表的标识符;与相同的值 INNODB_SYS_TABLES.TABLE_ID。
  • NAME
    列的名称。根据lower_case_table_names 设置,这些名称可以是大写或小写 。列没有特殊的系统保留名称。
    POS
    表格在表格中的顺序位置,从0开始,依次递增。当删除一列时,其余的列将重新排序,以使序列没有间隙。POS虚拟生成的列的值编码该列的序列号和该列的顺序位置。有关更多信息,请参见第23.32.25节“ The INFORMATION_SCHEMA INNODB_SYS_VIRTUAL表”中的POS列描述 。
  • MTYPE
    代表“主要类型”。列类型的数字标识符。1 = VARCHAR,2 = CHAR,3 = FIXBINARY,4 = BINARY,5 = BLOB,6 = INT,7 = SYS_CHILD,8 = SYS,9 = FLOAT,10 = DOUBLE,11 = DECIMAL,12 = VARMYSQL,13 = MYSQL,14 = GEOMETRY。
  • PRTYPE
    InnoDB “精确类型”,与表示MySQL数据类型,字符集代码,和为空比特的二进制值。
  • LEN
    列长,例如4表示INT ,8表示BIGINT。对于多字节字符集中的字符列,此长度值是表示一个定义(如;)所需的最大长度(以字节为单位) 。也就是说,它可能是 , 等等,具体取决于字符编码。 VARCHAR(N)2N3N

60、INNODB_SYS_FOREIGN表

该INNODB_SYS_FOREIGN表提供有关InnoDB 外键的元数据,等同SYS_FOREIGN于InnoDB数据字典中表中的信息。
该INNODB_SYS_FOREIGN表包含以下列:

  • ID
    外键索引的名称(不是数字值),后跟架构(数据库)名称(例如, test/products_fk)。
  • FOR_NAME
    此外键关系中的子表的名称。
  • REF_NAME
    此外键关系中父表的名称。
  • N_COLS
    外键索引中的列数。
  • TYPE
    包含有关外键列信息的位标志的集合,或在一起。0 = ON DELETE/UPDATE RESTRICT,1 = ON DELETE CASCADE,2 = ON DELETE SET NULL,4 = ON UPDATE CASCADE,8 = ON UPDATE SET NULL,16 = ON DELETE NO ACTION,32 = ON UPDATE NO ACTION。

61、INNODB_SYS_TABLESTATS表

该INNODB_SYS_TABLESTATS表提供了有关InnoDB表的低级状态信息的 视图。MySQL优化程序使用此数据来计算查询InnoDB表时要使用的索引 。此信息来自内存中的数据结构,而不是存储在磁盘上的数据。没有相应的内部InnoDB系统表。
InnoDB如果自上次服务器重新启动以来已打开表并且这些表尚未从表高速缓存中老化,则这些表在此视图中表示。此视图始终表示具有持久性统计信息的表。
表统计信息仅针对修改索引列的操作DELETE或 更新UPDATE索引列的操作而更新 。仅通过修改非索引列的操作不会更新统计信息。
ANALYZE TABLE清除表统计信息并将STATS_INITIALIZED 列设置为Uninitialized。下次访问该表时,将再次收集统计信息。
该INNODB_SYS_TABLESTATS表包含以下列:

  • TABLE_ID
    一个标识符,代表可获得其统计信息的表;与相同的值 INNODB_SYS_TABLES.TABLE_ID。
  • NAME
    表的名称;与相同的值 INNODB_SYS_TABLES.NAME。
  • STATS_INITIALIZED
    Initialized如果尚未收集统计信息,Uninitialized则为 该值。
  • NUM_ROWS
    表中当前的估计行数。每次DML操作后更新。如果未提交的事务正在插入表中或从表中删除,则该值可能不精确。
  • CLUST_INDEX_SIZE
    磁盘上存储聚簇索引的页数,聚簇索引InnoDB按主键顺序保存表数据。如果尚未收集该表的统计信息,那么此值可能为null。
  • OTHER_INDEX_SIZE
    磁盘上存储表的所有辅助索引的页面数。如果尚未收集该表的统计信息,那么此值可能为null。
  • MODIFIED_COUNTER
    由DML操作修改的行数,如 INSERT,UPDATE, DELETE从外键,也级联操作。每次重新计算表统计信息时,都会重置此列
  • AUTOINC
    下一个将针对任何基于自动增量的操作发出的数字。AUTOINC 值更改的速度取决于已请求自动递增编号的次数以及每个请求授予多少编号。
  • REF_COUNT
    当此计数器达到零时,可以从表缓存中逐出表元数据。

你可能感兴趣的:(mysql,mysql5.7,四库之一,mysql自带库)