24章information_schema表

目录

24.1 information_schema character_sets表
24.2 information_schema排序表
24.3的information_schema collation_character_set_applicability表
24.4 information_schema列表
24.5 information_schema column_privileges表
以上的information_schema column_statistics表
24.7 information_schema引擎表
24.8 information_schema事件表
24.9 information_schema文件表
24.10的information_schema key_column_usage表
24.11 information_schema关键词表
24.12 information_schema optimizer_trace表
24.13 information_schema参数表
24.14 information_schema分区表
24.15 information_schema插件表
24.16的information_schema列表表
可以的information_schema分析表
24.18 information_schema referential_constraints表
2的information_schema resource_groups表
24.20 information_schema程序表
24.21 information_schema图式表
24.22 information_schema schema_privileges表
幅员的information_schema统计表
24.24 information_schema st_geometry_columns表
24.25 information_schema st_spatial_reference_systems表
24.26 information_schema表表
24.27 information_schema表空间表
24.28 information_schema table_constraints表
24.29的information_schema table_privileges表
24.30 information_schema触发器表
24.31 information_schema user_privileges表
24.32 information_schema意见表
24.33的information_schema view_routine_usage表
24.34 information_schema view_table_usage表
24.35 information_schema InnoDB表
24.35.1的information_schema innodb_buffer_page表
24.35.2的information_schema innodb_buffer_page_lru表
24.35.3的information_schema innodb_buffer_pool_stats表
24.35.4的information_schema innodb_cached_indexes表
24.35.5的information_schema innodb_cmp和innodb_cmp_reset表
24.35.6的information_schema innodb_cmpmem和innodb_cmpmem_reset表
24.35.7的information_schema innodb_cmp_per_index andinnodb_cmp_per_index_reset表
24.35.8的information_schema innodb_ft_being_deleted表
24.35.9的information_schema innodb_ft_config表
24.35.10的information_schema innodb_ft_default_stopword表
24.35.11的information_schema innodb_ft_deleted表
24.35.12的information_schema innodb_ft_index_cache表
24.35.13的information_schema innodb_ft_index_table表
24.35.14的information_schema innodb_locks表
24.35.15的information_schema innodb_lock_waits表
24.35.16的information_schema innodb_metrics表
24.35.17的information_schema innodb_columns表
24.35.18的information_schema innodb_datafiles表
24.35.19的information_schema innodb_fields表
24.35.20的information_schema innodb_foreign表
24.35.21的information_schema innodb_foreign_cols表
24.35.22的information_schema innodb_indexes表
24.35.23的information_schema innodb_session_temp_tablespaces表
24.35.24的information_schema innodb_tables表
24.35.25的information_schema innodb_tablespaces表
24.35.26的information_schema innodb_tablespaces_brief表
24.35.27的information_schema innodb_tablestats观
24.35.28的information_schema innodb_virtual表
24.35.29的information_schema innodb_temp_table_info表
24.35.30的information_schema innodb_trx表
24.36 information_schema线程池表
24.36.1的information_schema tp_thread_group_state表
24.36.2的information_schema tp_thread_group_stats表
24.36.3的information_schema tp_thread_state表
24.37 information_schema连接控制表
24.37.1的information_schema connection_control_failed_login_attempts表
24.38扩展显示报表

INFORMATION_SCHEMA提供对数据库的访问元数据关于MySQL服务器,如数据库或表的名称信息,列的数据类型,或访问权限。另一方面,有时也用于此信息数据字典系统目录

information_schema用法说明

INFORMATION_SCHEMA是每一个MySQL实例在一个数据库,存储所有MySQL服务器维护其他数据库信息的地方。这个information_schema数据库包含多个只读表。他们是真正的看法,不是基表,所以没有与他们相关的文件,你不能设置触发他们。另外,没有叫这个名字的数据库目录。

虽然你可以选择INFORMATION_SCHEMA作为一个默认的数据库USE声明,你只能读表的内容,不履行INSERTUPDATE,或DELETE操作上

例子

这里是一个语句,检索信息的一个例子INFORMATION_SCHEMA

MySQL的>SELECT table_name, table_type, engineFROM information_schema.tablesWHERE table_schema = 'db5'ORDER BY table_name;------------ ------------ -------- | table_name | table_type |发动机| ------------ ------------ -------- | FK |基表| InnoDB | | FK2 |基表| InnoDB | |转到|基表| MyISAM | |为|基表| MyISAM | | K |基表| MyISAM | |九|基表| MyISAM | |环|基表| MyISAM | | PK |基表| InnoDB | | T |基表| MyISAM | | T2 |基表| MyISAM | | T3 |基表| MyISAM | | T7 |基表| MyISAM表的基表| | | | MyISAM | | V |观|空| | V2 |观|空| | V3 |观|空| | V |观|空| ------------ ------------ -------- 17行集(0.01秒)

说明:声明要求列出数据库中的所有表db5,只显示三条信息:表的名称,类型,和它的存储引擎。

字符集的考虑

对于字符列的定义(例如,TABLES.TABLE_NAMEgenerally)isvarchar(N)utf8字符集哪里N至少是64。MySQL的默认排序规则使用此字符集(我们_通用_ UTF8)所有搜索,分类,比较,和其他字符串操作等栏目。

因为一些MySQL对象表示为文件,搜索INFORMATION_SCHEMA字符串列可以通过文件系统灵敏度的影响。有关更多信息,参见第10.8.7,“使用排序规则在information_schema搜索”

information_schema替代显示报表

这个SELECT ... FROM INFORMATION_SCHEMA声明的目的是作为一个更一致的方式提供的各种提供的信息SHOW陈述,MySQL支持(SHOW DATABASESSHOW TABLES我知道,和四)。usingSELECT具有这些优点,相比SHOW

因为SHOW熟悉和广泛使用的SHOW报表作为一个替代。事实上,随着实施information_schema,有增强SHOW描述24.38节,“表达”的扩展

特权

每个MySQL的用户有权访问这些表,但可以看到只有行的表中的对应对象的用户有适当的访问权限。在某些情况下(例如,在ROUTINE_DEFINITION列在INFORMATION_SCHEMA.ROUTINES表),谁没有足够的权限的用户看到的无效的。这些限制不适用于InnoDB表;你可以只看到他们PROCESS特权

同样的特权适用于选择信息INFORMATION_SCHEMA查看相同的信息SHOW声明.在任何情况下,你必须有一个对象的信息看一些关于它的特权。

性能方面的考虑

INFORMATION_SCHEMA查询从多个数据库信息搜索可能需要很长的时间和冲击性能。检查查询的效率,你可以使用EXPLAIN。有关使用EXPLAIN输出调整information_schema查询,看8.2.3章节,“优化information_schema查询”

标准的思考

为实现INFORMATION_SCHEMA在MySQL表结构如下ANSI/ISO SQL标准的11部分:2003图式。我们的意图是:2003个核心特征近似符合SQL F021基本信息架构

SQL Server 2000的用户(这也符合标准)可能会注意到一个很强的相似性。然而,MySQL有略不相关的我们的实现很多列,并说是MySQL特定的列。这样的一列是ENGINE列在INFORMATION_SCHEMA.TABLES

虽然其他的数据库管理系统,使用各种各样的名称,如syscat系统,标准名称是INFORMATION_SCHEMA

避免使用任何名称是保留在标准或DB2,SQL Server,或Oracle,我们改变了一些列的名称标记mysql扩展。(例如,我们改变了COLLATION餐桌TABLES表。)看到的保留字在文章的最后名单:http:/ / / / / 20070428032454 web.archive.org网站http://www.dbazine.com / / / gulutzan5 db2 disarticles db2

在information_schema参考部分公约

以下各节描述每个表和列INFORMATION_SCHEMA。每一列,有三条信息:

许多章节说明SHOW声明相当于一个SELECT检索信息information_schema。为SHOW报表显示的信息为默认数据库如果你省略db_name条款,你可以经常为默认数据库选择信息的添加AND TABLE_SCHEMA = SCHEMA()条件的WHERE一个查询,检索信息从一个条款information_schema

相关信息

这一节讨论额外的INFORMATION_SCHEMA相关的话题:

24.1 information_schema character_sets表

这个CHARACTER_SETS表提供可用的字符集信息。

INFORMATION_SCHEMA姓名SHOW姓名评论
CHARACTER_SET_NAMECharset
DEFAULT_COLLATE_NAMEDefault collation
DESCRIPTIONDescriptionmysql扩展
MAXLENMaxlenmysql扩展

这个CHARACTER_SETS这些列的表:

  • CHARACTER_SET_NAME

    字符集名称

  • DEFAULT_COLLATE_NAME

    默认排序规则的字符集。

  • DESCRIPTION

    该字符集的描述

  • MAXLEN

    需要存储一个字符的最大字节数。

字符集的信息,也可以从SHOW CHARACTER SET声明。看到第13.7.6.3,“显示字符集语法”。下列陈述是等价的:

SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS
  [WHERE CHARACTER_SET_NAME LIKE 'wild']

SHOW CHARACTER SET
  [LIKE 'wild']

24.2 information_schema排序表

这个COLLATIONS表提供了有关排序规则为每个字符集。

INFORMATION_SCHEMA姓名SHOW姓名评论
COLLATION_NAMECollation
CHARACTER_SET_NAMECharsetmysql扩展
IDIdmysql扩展
IS_DEFAULTDefaultmysql扩展
IS_COMPILEDCompiledmysql扩展
SORTLENSortlenmysql扩展
PAD_ATTRIBUTE

这个COLLATIONS这些列的表:

  • COLLATION_NAME

    排序规则名称

  • CHARACTER_SET_NAME

    名称的字符集与整理相关。

  • ID

    整理的ID

  • IS_DEFAULT

    无论是整理是默认的字符集。

  • IS_COMPILED

    该字符集是否编译到服务器。

  • SORTLEN

    这是所需的字符串在字符集合表示排序的内存量相关。

  • PAD_ATTRIBUTE

    collation垫的属性。

整理信息也可从SHOW COLLATION声明。看到第13.7.6.4》的表演collation语法”。下列陈述是等价的:

SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS
  [WHERE COLLATION_NAME LIKE 'wild']

SHOW COLLATION
  [LIKE 'wild']

24.3的information_schema collation_character_set_applicability表

这个COLLATION_CHARACTER_SET_APPLICABILITY表格显示什么字符集是适用于什么整理。

INFORMATION_SCHEMA姓名SHOW姓名
COLLATION_NAMECollation
CHARACTER_SET_NAMECharset

这个COLLATION_CHARACTER_SET_APPLICABILITY这些列的表:

  • COLLATION_NAME

    排序规则名称

  • CHARACTER_SET_NAME

    名称的字符集与整理相关。

这个COLLATION_CHARACTER_SET_APPLICABILITY柱相当于前两列显示的SHOW COLLATION声明

24.4 information_schema列表

这个COLUMNS表提供了有关表列

相关ST_GEOMETRY_COLUMNS表提供了有关表列存储空间数据信息。看到24.24节,“information_schema st_geometry_columns表”

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLE_CATALOGdef
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAMEField
ORDINAL_POSITION看笔记
COLUMN_DEFAULTDefault
IS_NULLABLENull
DATA_TYPEType
CHARACTER_MAXIMUM_LENGTHType
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISIONType
NUMERIC_SCALEType
DATETIME_PRECISIONType
CHARACTER_SET_NAME
COLLATION_NAMECollation
COLUMN_TYPETypemysql扩展
COLUMN_KEYKeymysql扩展
EXTRAExtramysql扩展
PRIVILEGESPrivilegesmysql扩展
COLUMN_COMMENTCommentmysql扩展
GENERATION_EXPRESSIONmysql扩展
SRS_IDmysql扩展

这个COLUMNS这些列的表:

  • TABLE_CATALOG

    名称的目录,包含列表。价值总是def

  • TABLE_SCHEMA

    架构的名称包含该列的表。

  • TABLE_NAME

    包含列的表的名称

  • COLUMN_NAME

    栏目的名称

  • ORDINAL_POSITION

    该列在表中的位置ORDINAL_POSITION是必要的因为你可能想说为了ordinal_position。不像SHOW COLUMNSSELECTCOLUMNS表没有自动排序

  • COLUMN_DEFAULT

    该列的默认值。这是NULL如果列有一个明确的违约无效的,或如果列定义不包括DEFAULT条款.

  • IS_NULLABLE

    the column为空性。the value isYES如果无效的值可以存储在列,NO如果不是

  • DATA_TYPE

    *柱过程中的数据类型。

  • CHARACTER_MAXIMUM_LENGTH

    弦柱,字符的最大长度。

  • CHARACTER_OCTET_LENGTH

    字符串列的最大长度,以字节为单位。

  • NUMERIC_PRECISION

    数值列的数值精度

  • NUMERIC_SCALE

    对数字量表列的值

  • DATETIME_PRECISION

    时间柱,小数秒的精度。

  • CHARACTER_SET_NAME

    字符串列的字符集名称。

  • COLLATION_NAME

    字符串列的排序规则名称。

  • COLUMN_TYPE

    *柱过程中的数据类型。

  • COLUMN_KEY

    列是否有索引:

    • 如果COLUMN_KEY是空的,要么是不列的索引或索引只作为一个多柱一次柱,非唯一索引。

    • 如果COLUMN_KEY(墨西哥)革命制度党,列为PRIMARY KEY或是一个多柱主键

    • 如果COLUMN_KEY大学,列一列第一UNIQUE指数。(独特索引允许多个NULL值,但是你可以告诉该列是否允许无效的通过检查Null场。)

    • 如果COLUMN_KEY穆尔,列是一个非唯一索引中的给定值多出现在列允许第一列。

    如果一个以上的COLUMN_KEY值适用于一个给定的表列,column_key显示一个具有最高优先级,在订单PRI大学MUL

    UNIQUE指标可能会显示(墨西哥)革命制度党如果它不能包含NULL价值观和没有主键在桌子上。一UNIQUE指数可能显示为穆尔如果几个栏目形成复合UNIQUE指数;虽然列的组合是独一无二的,每一列仍然可以保持一个给定值多次出现。

  • EXTRA

    任何额外的,是关于一个给定的列的信息。在这些情况下的值为空:

    • auto_increment列有汽车_增量属性

    • on update CURRENT_TIMESTAMPTIMESTAMPDATETIME列有更新current_timestamp属性

    • VIRTUAL GENERATED虚拟存储对于生成的列

    • DEFAULT_GENERATED那有一个默认值的列的表达。

  • PRIVILEGES

    你该列的权限

  • COLUMN_COMMENT

    任何评论,包括在列定义。

  • GENERATION_EXPRESSION

    对于生成的列,显示用于计算列的值的表达式。空无再生中继柱。有关生成的列的信息,参见第13.1.18.8,“创建表和生成的列”

  • SRS_ID

    此值适用于空间列。它包含列SRID值,指示空间参考系统存储在列中的值。看到第11.5.1,“数据类型”,和第11.5.5,“空间参考系统的支持”。的价值NULL对于普通的列和列没有空间SRID属性

笔记

  • 进入SHOW COLUMNS,的类型显示包含几个不同的值COLUMNS专栏

  • CHARACTER_OCTET_LENGTHShould be the same ascharacter_maximum_length,除了多字节字符集

  • CHARACTER_SET_NAME可以从整理_名称。例如,如果你说SHOW FULL COLUMNS FROM t,和你看到的整理_名称列的值utf8_swedish_ci,字符集是在第一个下划线:UTF8

列信息也可从SHOW COLUMNS声明。看到第13.7.6.5,“显示列的语法”。下面的陈述是相当:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'tbl_name'
  [AND table_schema = 'db_name']
  [AND column_name LIKE 'wild']

SHOW COLUMNS
  FROM tbl_name
  [FROM db_name]
  [LIKE 'wild']

24.5 information_schema column_privileges表

这个COLUMN_PRIVILEGES表提供了有关栏目权限信息。此信息来自mysql.columns _私法授权表

这个COLUMN_PRIVILEGES这些列的表:

  • GRANTEE

    的帐户名,特权是理所当然的,在'user_name'@'host_name'格式

  • TABLE_CATALOG

    名称的目录,包含列表。价值总是def

  • TABLE_SCHEMA

    架构的名称包含该列的表。

  • TABLE_NAME

    包含列的表的名称

  • COLUMN_NAME

    栏目的名称

  • PRIVILEGE_TYPE

    授予的特权。价值是一个(只有一个)这些值:SELECTINSERTUPDATEREFERENCES

    在输出SHOW FULL COLUMNS的特权,在一场与小写字母,例如,选择、插入、更新、参考文献。进入COLUMN_PRIVILEGES,有每行的特权,大写。

  • IS_GRANTABLE

    YES如果用户有GRANT OPTION特权,另有。不狡猾的输出GRANT OPTION这些单独的权限

下面的语句是等效:

SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES

SHOW GRANTS ...

以上的information_schema column_statistics表

这个COLUMN_STATISTICS表提供了列值直方图统计访问。

关于直方图的统计信息,看第8.9.6,“优化统计”,和第13.7.3.1,“语法分析表”

你可以看到信息仅为列,你有特权。

这个COLUMN_STATISTICS这些列的表:

  • SCHEMA_NAME

    姓名的图式的统计应用。

  • TABLE_NAME

    名称的列的统计应用

  • COLUMN_NAME

    名称的列的统计应用

  • HISTOGRAM

    JSON描述的列统计对象,存储为一个直方图。

24.7 information_schema引擎表

这个ENGINES表提供了有关信息存储引擎。这是否一个存储引擎的支持是特别有用的,或者看到默认的搜索引擎是什么。

INFORMATION_SCHEMA姓名SHOW姓名评论
ENGINEEnginemysql扩展
SUPPORTSupportmysql扩展
COMMENTCommentmysql扩展
TRANSACTIONSTransactionsmysql扩展
XAXAmysql扩展
SAVEPOINTSSavepointsmysql扩展

这个ENGINES这些列的表:

  • ENGINE

    该存储引擎的名称

  • SUPPORT

    用于存储引擎支持服务器的水平,如下表所示。

    价值意义
    YES发动机支承和活跃
    DEFAULT喜欢YES,加上这是默认的搜索引擎
    NO柴油机是不支持的
    DISABLED引擎支持的但已被禁用

    一个值NO意味着服务器不使用的引擎支持,所以无法启用运行时。

    一个值DISABLED是因为服务器启动的一个选项,关闭发动机,或因为了不是所有的选项需要使它。在后者的情况下,错误日志中应该包含一个理由说明为什么选项被禁用。看到5.4.2部分,“错误日志”

    你也可以看到DISABLED对于一个存储引擎如果服务器被编译成支持它,但开始与-跳过—engine_name选项

    所有的MySQL服务器支持MyISAM表它不可能禁用MyISAM

  • COMMENT

    一个简短的描述的存储引擎。

  • TRANSACTIONS

    无论是存储引擎支持事务。

  • XA

    无论是存储引擎支持XA事务。

  • SAVEPOINTS

    无论是存储引擎支持保存点。

笔记

  • 这个ENGINES表是一个非标准的information_schema

存储引擎的信息也可以从SHOW ENGINES声明。看到第13.7.6.16,“显示引擎语法”。下列陈述是等价的:

SELECT * FROM INFORMATION_SCHEMA.ENGINES

SHOW ENGINES

24.8 information_schema事件表

这个EVENTS表提供了有关预定的事件信息,并进行了第2,“使用事件调度程序”。这个SHOW Name值对应的列名称SHOW EVENTS声明

INFORMATION_SCHEMA姓名SHOW姓名评论
EVENT_CATALOGdef,mysql扩展
EVENT_SCHEMADbmysql扩展
EVENT_NAMENamemysql扩展
DEFINERDefinermysql扩展
TIME_ZONETime zonemysql扩展
EVENT_BODYmysql扩展
EVENT_DEFINITIONmysql扩展
EVENT_TYPETypemysql扩展
EXECUTE_ATExecute atmysql扩展
INTERVAL_VALUEInterval valuemysql扩展
INTERVAL_FIELDInterval fieldmysql扩展
SQL_MODEmysql扩展
STARTSStartsmysql扩展
ENDSEndsmysql扩展
STATUSStatusmysql扩展
ON_COMPLETIONmysql扩展
CREATEDmysql扩展
LAST_ALTEREDmysql扩展
LAST_EXECUTEDmysql扩展
EVENT_COMMENTmysql扩展
ORIGINATOROriginatormysql扩展
CHARACTER_SET_CLIENTcharacter_set_clientmysql扩展
COLLATION_CONNECTIONcollation_connectionmysql扩展
DATABASE_COLLATIONDatabase Collationmysql扩展

笔记

  • 这个EVENTS表是一个非标准的information_schema

  • EVENT_CATALOG:这个列的值总是DEF

  • EVENT_SCHEMA模式:the name of the(to which this event belongs数据库)。

  • EVENT_NAME“name”事件

  • DEFINER:谁创造了事件的用户账户,在'user_name“@”host_name'格式

  • TIME_ZONE:事件时间区,这是用于调度事件的时间区,实际上是在事件的执行。默认值是系统

  • EVENT_BODY声明:the language used for the the事件在SDO条款;在MySQL 8中,这是永远SQL

    本栏目不具有相同名称的列混淆(现在叫EVENT_DEFINITION在早期的版本存在)

  • EVENT_DEFINITION:对SQL语句进行了事件的文本DO条款;换句话说,该语句执行的事件。

  • EVENT_TYPE事件重复类型,Either一次(过渡性)或RECURRING(Repeat)

  • EXECUTE_AT:一个一次性的事件,这是DATETIME指定的值的条款CREATE EVENT语句用于创建事件,或最后ALTER EVENT语句修改事件。在这一列的值反映了任何的加法或减法区间包括在事件的价值AT条款.例如,如果一个事件是使用在current_timestamp的1:6的day_hour时间表,和事件在2006-02-09 14:05:30创建,该列的值将'2006-02-10 20:05:30'

    如果事件的时间是由一个EVERY的条款,而不是一个条款(即,如果事件是经常性的),这个列的值NULL

  • INTERVAL_VALUE:经常性事件,此列包含事件的数字部分每一个条款.

    一个一次性的事件(即一个事件的时间是由一个AT这是一个例子),柱无效的

  • INTERVAL_FIELD经常性事件:for,这部分列包含the units of the每一个条款控制事件的时间。因此,此列包含的值如“YEAR“,”季度“,”DAY和我知道,夫人

    一个一次性的事件(即一个事件的时间是由一个AT这是一个例子),柱无效的

  • SQL_MODE:SQL模式的影响时,事件被创建或修改,并在该事件的执行。的允许值,见第5.1.10,”服务器的SQL模式”

  • STARTS:为定期事件的定义包括开始条款,此列包含对应DATETIME价值。与execute_at柱,该值用于解决任何表情。

    如果没有STARTS条款影响事件发生的时间,本栏目无效的

  • ENDS:为定期事件的定义包括末端条款,此列包含对应DATETIME价值。与execute_at柱,该值用于解决任何表情。

    如果没有ENDS条款影响事件发生的时间,本栏目无效的

  • STATUS一个值:启用DISABLED,或slaveside _ disabled

    SLAVESIDE_DISABLED指出,事件发生在另一个创建MySQL服务器作为复制和复制到当前MySQL服务器作为一个奴隶,但事件不是目前正在执行的奴隶。看到第17.4.1.16”功能,调用“复制为更多的信息

  • ON_COMPLETION:一个值保存NOT PRESERVE

  • CREATED:日期和时间,当事件被创建。这是一个TIMESTAMP价值

  • LAST_ALTERED:日期和时间,当事件最后修改。这是一个TIMESTAMP价值。如果事件没有自创建以来修改,这列包含相同的值创建专栏

  • LAST_EXECUTED:日期和时间,当事件最后执行。一DATETIME价值。如果没有执行,本栏目无效的

    LAST_EXECUTED表示事件开始时。作为一个结果,这末端柱不小于LAST_EXECUTED

  • EVENT_COMMENT:注释中的文字,如果有一个。如果不是,该列的值是一个空字符串。

  • ORIGINATOR:的MySQL服务器上的事件创建服务器ID;用于复制。默认值是0。

  • CHARACTER_SET_CLIENT的会话值:character_set_client系统变量当事件被创建。

  • COLLATION_CONNECTION的会话值:collation_connection系统变量当事件被创建。

  • DATABASE_COLLATION:整理数据库与该事件相关。

例子:假设用户jon@ghidora创建一个名为e_daily,然后修改它几分钟后使用ALTER EVENT语句,如下所示:

分隔符|创建事件e_daily进度每1天的评论保存会话总数然后清除表每一天的开始插入site_activity.totals(时间、总)选择current_timestamp,计数(*)从site_activity.sessions;删除site_activity.sessions;端|定界符;改变事件e_daily使;

(注意,评论可以跨越多行。)

这个用户可以运行下面的SELECT声明,并得到输出显示:

MySQL的>SELECT * FROM INFORMATION_SCHEMA.EVENTS>WHERE EVENT_NAME = 'e_daily'>AND EVENT_SCHEMA = 'myschema'\G*************************** 1。行*************************** event_catalog:def event_schema:测试event_name:e_daily定义:我@本地time_zone:系统event_body:SQL event_definition:开始插入site_activity.totals(时间、总)选择current_timestamp,计数(*)从site_activity.sessions;删除site_activity.sessions;端event_type:经常性execute_at:空interval_value:1 interval_field:天sql_mode:开始:2008-09-03 12:13:39结束:零状态:启用on_completion:不保存创建:2008-09-03 12:13:39 last_altered:2008-09-03 12:13:39 last_executed:空event_comment:保存的会话总数然后清除表每天鼻祖:1character_set_client:utf8collation_connection:utf8_swedish_ci database_collation:utf8_swedish_ci

时间在EVENTS表使用的是事件发生的时间、区域或当前会话的时区显示,如第23.4.4,事件“元数据”

参见第13.7.6.18,“显示事件的语法”

24.9 information_schema文件表

这个FILES表提供了有关文件,MySQL表空间数据存储。

INFORMATION_SCHEMA.FILES我们报告的日期NDBInnoDB数据文件

INFORMATION_SCHEMA姓名SHOW姓名评论
FILE_IDmysql扩展
FILE_NAMEmysql扩展
FILE_TYPEmysql扩展
TABLESPACE_NAMEmysql扩展
TABLE_CATALOGmysql扩展
TABLE_SCHEMAmysql扩展
TABLE_NAMEmysql扩展
LOGFILE_GROUP_NAMEmysql扩展
LOGFILE_GROUP_NUMBERmysql扩展
ENGINEmysql扩展
FULLTEXT_KEYSmysql扩展
DELETED_ROWSmysql扩展
UPDATE_COUNTmysql扩展
FREE_EXTENTSmysql扩展
TOTAL_EXTENTSmysql扩展
EXTENT_SIZEmysql扩展
INITIAL_SIZEmysql扩展
MAXIMUM_SIZEmysql扩展
AUTOEXTEND_SIZEmysql扩展
CREATION_TIMEmysql扩展
LAST_UPDATE_TIMEmysql扩展
LAST_ACCESS_TIMEmysql扩展
RECOVER_TIMEmysql扩展
TRANSACTION_COUNTERmysql扩展
VERSIONmysql扩展
ROW_FORMATmysql扩展
TABLE_ROWSmysql扩展
AVG_ROW_LENGTHmysql扩展
DATA_LENGTHmysql扩展
MAX_DATA_LENGTHmysql扩展
INDEX_LENGTHmysql扩展
DATA_FREEmysql扩展
CREATE_TIMEmysql扩展
UPDATE_TIMEmysql扩展
CHECK_TIMEmysql扩展
CHECKSUMmysql扩展
STATUSmysql扩展
EXTRAmysql扩展

InnoDB的笔记

以下说明适用于InnoDB数据文件INFORMATION_SCHEMA.FILES是不是下面描述字段不适用于InnoDB和报告NULL价值

  • 报告的数据INFORMATION_SCHEMA.FILES报告从InnoDB为打开的文件在内存中缓存。通过比较,INFORMATION_SCHEMA.INNODB_DATAFILES从报告的数据InnoDBSYS_DATAFILES内部数据字典表

  • 报告的数据INFORMATION_SCHEMA.FILES包括临时表空间的数据。这一数据在内部是不可用的sys_datafiles数据字典表,因而未被报道INNODB_DATAFILES

  • 撤销表空间的数据报告INFORMATION_SCHEMA.FILES当单独的撤销表空间的存在,它们在MySQL 8的默认

  • FILE_ID是表证,也被称为space_idfil_space_t::id

  • FILE_NAME是数据文件的名称。每个表和表空间文件有一个鸡传染性法氏囊病文件扩展名。撤销表空间有undo。SYSTEM表空间是以ibdata。临时表空间有ibtmp。文件名包含文件的路径,这可能与MySQL数据目录(datadir

  • FILE_TYPE是表空间文件类型。有三种可能的文件类型InnoDB文件TABLESPACE对于任何系统,一般的文件或文件类型,每个表空间文件保存表,索引,或其他形式的用户数据。临时是临时表空间的文件类型。UNDO LOG是撤销表空间的文件类型,将撤销记录。

  • TABLESPACE_NAMEis the name for the SQL表空间。烟草公司信息系统值。在其他表空间的名称和文件,启动innodb_,如InnoDB _系统innodb_undo,和innodb_file_per_table。每个表的表空间名称格式的文件innodb_file_per_table_##,在那里##是表空间ID

  • ENGINE是存储引擎。为InnoDB文件,该值始终是InnoDB

  • FREE_EXTENTS是完全自由的程度在当前数据文件的数量。

  • TOTAL_EXTENTS是全程度用在当前数据文件的数量。在文件的末尾部分程度上不算什么。

  • EXTENT_SIZE1048576(1MB)与4K,8k文件,或是16K的页面大小。程度的大小是2097152字节(2MB)为32K页面大小的文件,和4194304(4MB)与一个64K的页大小的文件。INFORMATION_SCHEMA.FILES不报告InnoDB页面大小。页面大小定义的innodb_page_size选项程度大小的信息也可以被检索从INNODB_TABLESPACES哪里FILES.FILE_ID = INNODB_TABLESPACES.SPACE_ID

  • INITIAL_SIZE是文件的初始大小,以字节为单位。

  • MAXIMUM_SIZE是文件中允许的最大字节数。的价值无效的除了预定义的系统表空间的数据文件的所有数据文件。最大的系统表空间文件大小被定义为innodb_data_file_path。最大的临时表空间文件大小被定义为innodb_temp_data_file_path。一无效的一个预定义的系统表空间的数据文件的值表示文件大小限制没有明确定义。

  • AUTOEXTEND_SIZE是自动扩展的大小定义innodb_data_file_pathSYSTEM表空间,或由innodb_temp_data_file_path临时表空间

  • DATA_FREE是自由空间的总量(以字节为单位)为整个表空间。预定义的系统表空间,包括系统表空间和临时表的表空间,可以有一个或多个数据文件。

  • STATUS正常默认情况下InnoDB每个表的表空间可以报告文件进口,这表明表空间不可用。

  • 以下查询将返回所有相关数据InnoDB表空间

    MySQL >选择file_id,file_name,file_type,tablespace_name,free_extents,total_extents,extent_size,initial_size,maximum_size,autoextend_size,data_free,状态引擎information_schema.files \ G

24.10的information_schema key_column_usage表

这个KEY_COLUMN_USAGE表描述的关键列约束。这张桌子不提供功能的关键部分的信息是因为他们的表情和表所提供的信息仅列。

这个KEY_COLUMN_USAGE这些列的表:

  • CONSTRAINT_CATALOG

    名称的目录的约束。该列的值总是def

  • CONSTRAINT_SCHEMA

    架构的名称所属的约束。

  • CONSTRAINT_NAME

    约束的名称

  • TABLE_CATALOG

    名称所属目录表。该列的值总是def

  • TABLE_SCHEMA

    the name of the to which the table belongs模式。

  • TABLE_NAME

    有约束的表的名称

  • COLUMN_NAME

    该柱具有约束的名称

    如果约束是一个外键,那么这是外键列、不列的外键。

  • ORDINAL_POSITION

    柱内的位置约束,没有列在表中的位置。列位置编号从1开始。

  • POSITION_IN_UNIQUE_CONSTRAINT

    NULL唯一和主键约束。外键约束的列,这是关键的表,被引用的顺序位置。

  • REFERENCED_TABLE_SCHEMA

    受约束的参考架构名称。

  • REFERENCED_TABLE_NAME

    表的名称由约束引用

  • REFERENCED_COLUMN_NAME

    通过约束引用的列的名称。

有两个其他的名字t1T3有以下定义:

CREATE TABLE t1
(
    s1 INT,
    s2 INT,
    s3 INT,
    PRIMARY KEY(s3)
) ENGINE=InnoDB;

CREATE TABLE t3
(
    s1 INT,
    s2 INT,
    s3 INT,
    KEY(s1),
    CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;

这两个表的KEY_COLUMN_USAGE桌上有两排:

  • 一排CONSTRAINT_NAME=“主要”TABLE_NAME=是T1的COLUMN_NAME=S3是ORDINAL_POSITION=POSITION_IN_UNIQUE_CONSTRAINT=无效的

  • 一排CONSTRAINT_NAME=“有限”TABLE_NAME=是的T3COLUMN_NAME=是S2是ORDINAL_POSITION=POSITION_IN_UNIQUE_CONSTRAINT=

24.11 information_schema关键词表

这个KEYWORDS表中列出的话考虑关键词的MySQL,为每一个,说明无论是保留。保留关键字可能需要在某些情况下的特殊处理,如特殊报价时用作标识符(见9.3节,“关键字和保留字”页:1此表格提供了MYSQL KYYWOK信息的应用程序。

笔记

目前,选择KEYWORDS产生一个错误,除非一个默认的数据库已被选定。

这个KEYWORDS这些列的表:

  • WORD

    关键词

  • RESERVED

    整数表示是否保留的关键字(1)或非预定(0)。

这些查询列出所有的关键词,所有的保留关键字,和所有非保留关键字,分别:

SELECT * FROM INFORMATION_SCHEMA.KEYWORDS;
SELECT WORD FROM INFORMATION_SCHEMA.KEYWORDS WHERE RESERVED = 1;
SELECT WORD FROM INFORMATION_SCHEMA.KEYWORDS WHERE RESERVED = 0;

后两者的查询是等效的:

SELECT WORD FROM INFORMATION_SCHEMA.KEYWORDS WHERE RESERVED;
SELECT WORD FROM INFORMATION_SCHEMA.KEYWORDS WHERE NOT RESERVED;

如果你建立MySQL从源,构建过程产生keyword_list.h头文件包含的关键字和保留状态数组。这个文件中可以找到SQL在建立目录的目录。此文件可能需要的关键字列表的静态源的应用是有用的。

24.12 information_schema optimizer_trace表

这个OPTIMIZER_TRACE表提供了优化器的跟踪能力产生的信息。启用跟踪,使用optimizer_trace系统变量。详情见MySQL内核:追踪优化器

24.13 information_schema参数表

这个PARAMETERS表提供有关存储过程和函数的参数,返回值和存储功能。

INFORMATION_SCHEMA姓名评论
SPECIFIC_CATALOGdef
SPECIFIC_SCHEMA常规的数据库
SPECIFIC_NAME常规的名字
ORDINAL_POSITION1,2,3,…参数为0,功能RETURNS条款
PARAMETER_MODEININOUT无效的RETURNS
PARAMETER_NAME(name参数NULL退货
DATA_TYPE一样的COLUMNS
CHARACTER_MAXIMUM_LENGTH一样的COLUMNS
CHARACTER_OCTET_LENGTH一样的COLUMNS
NUMERIC_PRECISION一样的COLUMNS
NUMERIC_SCALE一样的COLUMNS
DATETIME_PRECISION一样的COLUMNS
CHARACTER_SET_NAME一样的COLUMNS
COLLATION_NAME一样的COLUMNS
DTD_IDENTIFIER一样的COLUMNS
ROUTINE_TYPE一样的ROUTINES

笔记

  • 为存储过程或函数的连续参数的ORDINAL_POSITION值是1, 2, 3,等等。对于一个存储功能,也有一行描述的数据类型退货条款.返回值是不是一个真正的参数,所以行描述了这些独特的特性:

    • 这个ORDINAL_POSITION值为0

    • 这个PARAMETER_NAMEparameter_modeNULL因为返回值没有名字和模式不适用。

24.14 information_schema分区表

这个PARTITIONS表提供了有关分区表信息。看到22章,分区,有关分区表的更多信息。

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLE_CATALOGmysql扩展
TABLE_SCHEMAmysql扩展
TABLE_NAMEmysql扩展
PARTITION_NAMEmysql扩展
SUBPARTITION_NAMEmysql扩展
PARTITION_ORDINAL_POSITIONmysql扩展
SUBPARTITION_ORDINAL_POSITIONmysql扩展
PARTITION_METHODmysql扩展
SUBPARTITION_METHODmysql扩展
PARTITION_EXPRESSIONmysql扩展
SUBPARTITION_EXPRESSIONmysql扩展
PARTITION_DESCRIPTIONmysql扩展
TABLE_ROWSmysql扩展
AVG_ROW_LENGTHmysql扩展
DATA_LENGTHmysql扩展
MAX_DATA_LENGTHmysql扩展
INDEX_LENGTHmysql扩展
DATA_FREEmysql扩展
CREATE_TIMEmysql扩展
UPDATE_TIMEmysql扩展
CHECK_TIMEmysql扩展
CHECKSUMmysql扩展
PARTITION_COMMENTmysql扩展
NODEGROUPmysql扩展
TABLESPACE_NAMEmysql扩展

笔记

  • 这个PARTITIONS表是一个非标准的information_schema

    该表中的每个记录都对应着一个分区表的一个单独的分区或子分区。

  • TABLE_CATALOG:价值总是DEF

  • TABLE_SCHEMA:此列包含的数据库的名称的表。

  • TABLE_NAME:本栏目含有分区表的名称。

  • PARTITION_NAME分区的名称

  • SUBPARTITION_NAMEif the:PARTITIONS表记录代表子分区,则该列包含子分区的名称;否则无效的

  • PARTITION_ORDINAL_POSITION:所有分区索引以相同的顺序为它们定义,与被分配到第一分区数。索引可以为分区补充说,下降,重组变化;显示的号码是本专栏反映当前的订单,考虑到任何索引的变化。

  • SUBPARTITION_ORDINAL_POSITION:不会在一个给定的分区索引和重建也以同样的方式为分区索引表内。

  • PARTITION_METHOD:一个值范围LIST搞砸LINEAR HASH钥匙,或LINEAR KEY;就是一个可用的分区类型讨论22.2节,“分区类型”

  • SUBPARTITION_METHOD:一个值搞砸LINEAR HASH钥匙,或LINEAR KEY;就是一个可用的分区类型讨论第22.2.6,“subpartitioning”

  • PARTITION_EXPRESSION:这是分区函数中的表达CREATE TABLEALTER TABLE创建表的当前分区方案的声明。

    例如,考虑一个分区表中创建test使用此报表数据库:

    创建表的TP(C1 C2 C3 int,int,varchar(25))散列分区法(C1、C2)分区4;

    这个PARTITION_EXPRESSION从这个表中分区的分区表记录栏显示C1、C2,如下所示:

    mysql> SELECT DISTINCT PARTITION_EXPRESSION
         >     FROM INFORMATION_SCHEMA.PARTITIONS
         >     WHERE TABLE_NAME='tp' AND TABLE_SCHEMA='test';
    +----------------------+
    | PARTITION_EXPRESSION |
    +----------------------+
    | c1 + c2              |
    +----------------------+
    1 row in set (0.09 sec)
    
  • SUBPARTITION_EXPRESSION:本作品以同样的方式表达对分区表的分区定义为partition_expression做为分区表达式用于定义一个表的分区。

    如果表没有子分区,那么这个列NULL

  • PARTITION_DESCRIPTION这列是used for把and列表分区。for a范围分区,它包含在分区的价值VALUES LESS THAN条款,这可以是一个整数或最大。对于一个LIST此列包含分区,在分区的定义的值价值观条款,这是一个逗号分隔的整数值列表。

    片名:PARTITION_METHOD是不是范围LIST,此列始终无效的

  • TABLE_ROWS:在分区表中的行数

    对于分区InnoDB表中给出的行数table_rows柱只是一个估计值中使用SQL语句的优化,而不总是精确的。

  • AVG_ROW_LENGTH:存储在该分区或子行的平均长度,以字节为单位。

    这是一样的DATA_LENGTH除以table_rows

  • DATA_LENGTH:所有行存储在该分区和子分区的总长度,以字节为单位,存储在分区和子分区的总字节数。

  • MAX_DATA_LENGTH:字节可以存储在该分区或子分区的最大数量。

  • INDEX_LENGTH:该分区或子分区的索引文件的长度,以字节为单位。

  • DATA_FREE《allocated字节数的分区和子分区但不习惯。

  • CREATE_TIME:《时间的分区的或subpartition的创作。

  • UPDATE_TIME:该分区或子分区最后修改时间。

  • CHECK_TIME:最后一次的表的分区或子部分是检查。

    对于分区InnoDB表,此列始终无效的

  • CHECKSUM:校验和值,否则,如果任何一本柱;无效的

  • PARTITION_COMMENT:此列包含了分区的任何注释文本。

    一个分区的评论的最大长度定义为1024字符的显示宽度PARTITION_COMMENT柱也是1024,字符匹配这个极限。

    此列的默认值为空字符串。

  • NODEGROUP:这是组织的划分。这是只有MySQL簇表中相关;否则,该列的值总是

  • TABLESPACE_NAME:此列包含名称的表空间的划分。该列的值总是默认

  • 非分区表有一个记录INFORMATION_SCHEMA.PARTITIONSHowever,the values of the;_分区的名字SUBPARTITION_NAME分区_ _序数位置SUBPARTITION_ORDINAL_POSITION_分区方法SUBPARTITION_METHODpartition_expressionSUBPARTITION_EXPRESSION,和部分描述列都NULL。(the【解释】:分区在这种情况下一栏是空白的。)

24.15 information_schema插件表

这个PLUGINS表提供了有关服务器的插件信息。

INFORMATION_SCHEMA姓名SHOW姓名评论
PLUGIN_NAMENamemysql扩展
PLUGIN_VERSIONmysql扩展
PLUGIN_STATUSStatusmysql扩展
PLUGIN_TYPETypemysql扩展
PLUGIN_TYPE_VERSIONmysql扩展
PLUGIN_LIBRARYLibrarymysql扩展
PLUGIN_LIBRARY_VERSIONmysql扩展
PLUGIN_AUTHORmysql扩展
PLUGIN_DESCRIPTIONmysql扩展
PLUGIN_LICENSELicensemysql扩展
LOAD_OPTIONmysql扩展

笔记

  • 这个PLUGINS表是一个非标准的information_schema

  • PLUGIN_NAME是指在诸如插件的名称INSTALL PLUGINUNINSTALL PLUGIN

  • PLUGIN_VERSION从插件的一般类型说明符的版本。

  • PLUGIN_STATUS显示插件的状态,一个活动中INACTIVE禁用DELETING,或删除

  • PLUGIN_TYPE显示插件的类型,如存储引擎INFORMATION_SCHEMA,或认证

  • PLUGIN_TYPE_VERSION从插件的特定类型的描述符的版本。

  • PLUGIN_LIBRARY是插件的共享库文件的名称。这是指在诸如插件文件的名称INSTALL PLUGINUNINSTALL PLUGIN。这个文件位于目录命名的plugin_dir系统变量。If the library name is无效的,插件编写和无法卸载与UNINSTALL PLUGIN

  • PLUGIN_LIBRARY_VERSION显示插件API接口的版本。

  • PLUGIN_AUTHORthe author插件的名称。

  • PLUGIN_DESCRIPTION提供了一个短片

  • PLUGIN_LICENSE指示如何插件是许可的;例如,GPL

  • LOAD_OPTION指示如何插件加载。的价值关闭ON,或FORCE_PLUS_PERMANENT。看到第5.6.1,“安装和卸载插件”

为插件的安装INSTALL PLUGIN,的_插件名称PLUGIN_LIBRARY值也注册在mysql.plugin

这些陈述是等价的:

SELECT
  PLUGIN_NAME, PLUGIN_STATUS, PLUGIN_TYPE,
  PLUGIN_LIBRARY, PLUGIN_LICENSE
FROM INFORMATION_SCHEMA.PLUGINS;

SHOW PLUGINS;

关于插件的数据结构形式的信息为基础的信息PLUGINS表,看28.2节,“MySQL插件API”

插件的信息也可以从SHOW PLUGINS声明。看到第13.7.6.25,“显示插件的语法”

24.16的information_schema列表表

这个PROCESSLIST表提供了有关线程运行。

INFORMATION_SCHEMA姓名SHOW姓名评论
IDIdmysql扩展
USERUsermysql扩展
HOSTHostmysql扩展
DBdbmysql扩展
COMMANDCommandmysql扩展
TIMETimemysql扩展
STATEStatemysql扩展
INFOInfomysql扩展

为表中的列的一个广泛的描述,参见第13.7.6.29,“显示列表的语法”

笔记

下列陈述是等价的:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

SHOW FULL PROCESSLIST

可以的information_schema分析表

这个PROFILING表提供报表分析信息。其内容与所产生的信息SHOW PROFILESSHOW PROFILE报表(见第13.7.6.31,“显示配置文件的语法”)。桌子上是空的除非profiling会话变量设置为1.

笔记

这张桌子是过时的、将在未来的MySQL版本中删除。使用性能模式相反;看第25章,MySQL性能模式

INFORMATION_SCHEMA姓名SHOW姓名
QUERY_IDQuery_ID
SEQ
STATEStatus
DURATIONDuration
CPU_USERCPU_user
CPU_SYSTEMCPU_system
CONTEXT_VOLUNTARYContext_voluntary
CONTEXT_INVOLUNTARYContext_involuntary
BLOCK_OPS_INBlock_ops_in
BLOCK_OPS_OUTBlock_ops_out
MESSAGES_SENTMessages_sent
MESSAGES_RECEIVEDMessages_received
PAGE_FAULTS_MAJORPage_faults_major
PAGE_FAULTS_MINORPage_faults_minor
SWAPSSwaps
SOURCE_FUNCTIONSource_function
SOURCE_FILESource_file
SOURCE_LINESource_line

笔记

  • QUERY_ID是一个数字的声明

  • SEQ是一个序列号指示同一行的显示顺序query_id价值

  • STATE是分析状态,连续测量应用。

  • DURATION说明长语句执行保持在给定的状态,在几秒钟内。

  • CPU_USER_ CPU系统指示使用和系统使用,在第二。

  • CONTEXT_VOLUNTARYcontext_involuntary有多少自愿和非自愿的上下文切换发生。

  • BLOCK_OPS_INblock_ops_out显示块的输入和输出操作数。

  • MESSAGES_SENTmessages_received显示号码的通信消息的发送和接收。

  • PAGE_FAULTS_MAJORpage_faults_minor说明主要的和次要的页面错误数。

  • SWAPS表示多少掉期发生

  • SOURCE_FUNCTION源文件,和SOURCE_LINE提供的信息显示在源代码中的异形态执行。

24.18 information_schema referential_constraints表

这个REFERENTIAL_CONSTRAINTS表提供了有关外键信息。

INFORMATION_SCHEMA姓名SHOW姓名评论
constraint_catalogDEF
constraint_schema
约束_ name
unique_constraint_catalogDEF
unique_constraint_schema
唯一的选择
match_option
update_rule
delete_rule
referenced_table_name

笔记

  • TABLE_NAME具有相同的价值进入INFORMATION_SCHEMA.TABLE_CONSTRAINTS

  • CONSTRAINT_SCHEMA约束_ name确定外键

  • UNIQUE_CONSTRAINT_SCHEMA唯一的选择,和REFERENCED_TABLE_NAME确定引用的关键

  • 在这个时候,唯一有效的价值MATCH_OPTION

  • 可能的值为UPDATE_RULEdelete_ruleCASCADE设置空SET DEFAULT限制NO ACTION

2的information_schema resource_groups表

这个RESOURCE_GROUPS表提供了访问资源组的信息。为资源组能力一般的讨论,见第8.12.5,“资源组”

你可以看到信息仅为列,你有特权。

RESOURCE_GROUPS这些列有:

  • RESOURCE_GROUP_NAME

    该资源组的名称

  • RESOURCE_GROUP_TYPE

    资源组的类型,要么SYSTEM用户

  • RESOURCE_GROUP_ENABLED

    无论是资源组启用或禁用(1)(0);

  • VCPU_IDS

    CPU亲和力;即虚拟设定的CPU资源组可以使用。该值是一个列表,以逗号分隔的CPU数量或范围。

  • THREAD_PRIORITY

    分配给资源组线程的优先级。优先级的范围从20(最高优先级)到19(最低优先级)。系统资源组有一个优先级,从20到0的范围内。用户资源组有一个优先级,从0到19不等。

24.20 information_schema程序表

这个ROUTINES表提供了有关存储程序信息(包括程序和功能)。这个ROUTINES表不包括用户自定义函数(UDF)。

INFORMATION_SCHEMA姓名评论
SPECIFIC_NAME
ROUTINE_CATALOGdef
ROUTINE_SCHEMA
ROUTINE_NAME
ROUTINE_TYPE{PROCEDURE|FUNCTION}
DATA_TYPE一样的COLUMNS
CHARACTER_MAXIMUM_LENGTH一样的COLUMNS
CHARACTER_OCTET_LENGTH一样的COLUMNS
NUMERIC_PRECISION一样的COLUMNS
NUMERIC_SCALE一样的COLUMNS
DATETIME_PRECISION一样的COLUMNS
CHARACTER_SET_NAME一样的COLUMNS
COLLATION_NAME一样的COLUMNS
DTD_IDENTIFIER数据类型描述符
ROUTINE_BODYSQL
ROUTINE_DEFINITION
EXTERNAL_NAMENULL
EXTERNAL_LANGUAGE
PARAMETER_STYLESQL
IS_DETERMINISTIC
SQL_DATA_ACCESS
SQL_PATHNULL
SECURITY_TYPE
CREATED
LAST_ALTERED
SQL_MODEmysql扩展
ROUTINE_COMMENTmysql扩展
DEFINERmysql扩展
CHARACTER_SET_CLIENTmysql扩展
COLLATION_CONNECTIONmysql扩展
DATABASE_COLLATIONmysql扩展

笔记

  • EXTERNAL_LANGUAGE:的存储程序语言。值的读取external_language列的mysql.routines数据词典

  • CREATED:日期和时间,当程序创建。这是一个TIMESTAMP价值

  • LAST_ALTERED:日期和时间,当常规的最后修改。这是一个TIMESTAMP价值。如果程序没有自创建以来修改,这列包含相同的值创建专栏

  • SQL_MODE:SQL模式的影响时,程序被创建或改变,在常规的执行。的允许值,见第5.1.10,”服务器的SQL模式”

  • CHARACTER_SET_CLIENT的会话值:character_set_client系统变量时的常规创建。

  • COLLATION_CONNECTION的会话值:collation_connection系统变量时的常规创建。

  • DATABASE_COLLATION:整理数据库的日常关联。

  • 这个DATA_TYPEcharacter_maximum_lengthCHARACTER_OCTET_LENGTH序列号NUMERIC_SCALEdatetime_precisionCHARACTER_SET_NAME,和整理_名称栏目提供关于数据类型信息RETURNS存储功能条款。如果存储过程是存储过程,这些柱子都是无效的

  • 信息存储功能RETURNS数据类型中也可PARAMETERS表一个函数的返回值的数据类型的列可以被认定为行,有一个_序数位置值为0

24.21 information_schema图式表

一个模式是一个数据库,所以SCHEMATA表格中提供的信息数据库。

INFORMATION_SCHEMA姓名SHOW姓名评论
CATALOG_NAMEdef
SCHEMA_NAME数据库
DEFAULT_CHARACTER_SET_NAME
DEFAULT_COLLATION_NAME
SQL_PATHNULL

下列陈述是等价的:

SELECT SCHEMA_NAME AS `Database`
  FROM INFORMATION_SCHEMA.SCHEMATA
  [WHERE SCHEMA_NAME LIKE 'wild']

SHOW DATABASES
  [LIKE 'wild']

24.22 information_schema 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特权,另有。不狡猾的输出GRANT OPTION这些单独的权限

笔记

  • 这个SCHEMA_PRIVILEGES表是一个非标准的information_schema表从它的价值mysql.db

下面的语句是等效:

SELECT ... FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES

SHOW GRANTS ...

幅员的information_schema统计表

这个STATISTICS表提供了有关表的索引信息。

STATISTICS代表举行的缓存值统计表。这个information_schema_stats_expiry系统变量定义了前一段时间的缓存表统计到期。默认值是86400秒(24小时)。如果没有缓存的统计或统计已经过期,数据从存储引擎在查询统计表列检索。更新缓存值在任何时间对于一个给定的表,使用ANALYZE TABLE。要检索的最新统计数据直接从存储引擎,集information_schema_stats_expiry。有关更多信息,参见8.2.3章节,“优化information_schema查询”

笔记

如果innodb_read_only系统变量是启用,ANALYZE TABLE可能会失败,因为它不能在数据字典更新统计表,并使用InnoDB。为ANALYZE TABLE操作更新密钥分配,即使操作更新表本身可能出现故障(例如,如果它是一个MyISAM表)。为了获得更新的统计分布,集information_schema_stats_expiry=0

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLE_CATALOGdef
TABLE_SCHEMA
TABLE_NAMETable
NON_UNIQUENon_unique
INDEX_SCHEMA
INDEX_NAMEKey_name
SEQ_IN_INDEXSeq_in_index
COLUMN_NAMEColumn_name
COLLATIONCollation
CARDINALITYCardinality
SUB_PARTSub_partmysql扩展
PACKEDPackedmysql扩展
NULLABLENullmysql扩展
INDEX_TYPEIndex_typemysql扩展
COMMENTCommentmysql扩展
INDEX_COMMENTIndex_commentmysql扩展
IS_VISIBLEVisiblemysql扩展
EXPRESSIONExpressionmysql扩展

这个STATISTICS这些列的表:

  • TABLE_CATALOG

    名称的目录,包含索引的表。价值总是def

  • TABLE_SCHEMA

    架构的名称,包含索引的表。

  • TABLE_NAME

    包含索引的表的名称

  • NON_UNIQUE

    如果该指数不能包含重复的元素,如果它能。

  • INDEX_SCHEMA

    的名称,该索引所属架构。

  • INDEX_NAME

    该指数的名字。如果索引为主键,名称是PRIMARY

  • SEQ_IN_INDEX

    索引中的列顺序号,从1开始。

  • COLUMN_NAME

    the column name。see also the description for theEXPRESSION专栏

  • COLLATION

    如何列在索引排序。这可以有价值A(升),D(descending),或NULL(未排序)

  • CARDINALITY

    索引中的唯一值的数量估计。更新这个数字,跑ANALYZE TABLE或(为MyISAM表格)myisamchk -

    CARDINALITY基于存储为整数计算统计,所以价值不一定精确甚至小表。基数越高,更大的机会,MySQL使用索引时,加入。

  • SUB_PART

    该指数的前缀。那就是,如果仅列部分索引索引的字符数,NULL如果整个列建立索引

    笔记

    前缀限制以字节为单位。然而,前缀长度指标规格CREATE TABLEALTER TABLE,和CREATE INDEX语句被解释为非二进制字符串类型的字符数(CHARVARCHARTEXT)和二进制字符串类型的字节数(BINARYVARBINARYBLOB)。考虑到这一点时指定前缀长度为非二进制字符串列使用多字节字符集。

    关于前缀索引的更多信息,参见第8.3.5,“列索引”,和第13.1.14,“创建索引的语法”

  • PACKED

    说明关键是包装NULL如果不是

  • NULLABLE

    包含YES如果列可能包含无效的价值观和''如果不是

  • INDEX_TYPE

    用指数法(BTREE全文HASH索引

  • COMMENT

    关于指数在自己的专栏中没有描述的信息,如disabled如果该索引不复存在

  • INDEX_COMMENT

    任何评论提供的指数与COMMENT属性创建索引时

  • IS_VISIBLE

    无论指数是优化器可见。看到B hfp“看不见的索引部分,”

  • EXPRESSION

    MySQL 8.0.13高支持功能的关键部分(见功能键部分),这既影响了COLUMN_NAME表达专栏

    • 一个功能的关键部分,COLUMN_NAME显示列的索引和关键部分表达NULL

    • 一个功能键部分,COLUMN_NAME无效的EXPRESSION表明关键部分的表达

笔记

  • 没有标准INFORMATION_SCHEMA表的索引。MySQL的列的列表,类似于SQL Server 2000的回报sp_statistics,除了QUALIFIER业主替换CATALOG图式,分别

关于表的索引信息也可从SHOW INDEX声明。看到第13.7.6.22,显示指数的语法”。下列陈述是等价的:

SELECT * FROM INFORMATION_SCHEMA.STATISTICS
  WHERE table_name = 'tbl_name'
  AND table_schema = 'db_name'

SHOW INDEX
  FROM tbl_name
  FROM db_name

24.24 information_schema st_geometry_columns表

这个ST_GEOMETRY_COLUMNS表提供了有关表列存储空间数据信息。此表是基于SQL /毫米(ISO / IEC 13249-3)标准,扩展到。MySQL实现ST_GEOMETRY_COLUMNS在一个视图information_schemaCOLUMNS

ST_GEOMETRY_COLUMNS这些列有:

  • TABLE_CATALOG

    名称的目录,包含列表。价值总是def

  • TABLE_SCHEMA

    架构的名称包含该列的表。

  • TABLE_NAME

    包含列的表的名称

  • COLUMN_NAME

    栏目的名称

  • SRS_NAME

    在空间参考系统(SRS)的名称。

  • SRS_ID

    在空间参考系统ID(标识)。

  • GEOMETRY_TYPE_NAME

    列数据类型。允许值:geometry指向linestring多边形multipointmultilinestringmultipolygongeometrycollection。本栏目是一个mysql扩展标准。

24.25 information_schema st_spatial_reference_systems表

这个ST_SPATIAL_REFERENCE_SYSTEMS表格中提供的信息的可用空间参考系统的空间数据。此表是基于SQL /毫米(ISO / IEC标准13249-3)。

中的条目ST_SPATIAL_REFERENCE_SYSTEMS表是基于欧洲石油调查组(EPSG)数据集,除了SRID 0,这对应于一个特殊的SRS使用MySQL,是一个无限平面笛卡尔平面没有单位分配给它的轴。关于SRSs的更多信息,参见第11.5.5,“空间参考系统的支持”

ST_SPATIAL_REFERENCE_SYSTEMS这些列有:

  • SRS_NAME

    空间参考系统名称。这个值是唯一的。

  • SRS_ID

    空间参考系统的数字ID值是唯一的。

    SRS_ID值代表的是同一种价值观为空间功能的扩散参数传递。SRID 0(无单位的直角平面)是特殊的。它始终是一个合法的空间参考系统ID可用于对空间数据依赖SRID值计算。

  • ORGANIZATION

    该组织的名称,定义坐标系统上的空间参考系统。

  • ORGANIZATION_COORDSYS_ID

    数字ID给空间参考系统通过定义组织。

  • DEFINITION

    空间参考系统的定义DEFINITION值表示为WKT值,指定在开放地理空间联盟文件OGC 12-063r5

    SRS定义解析发生在需求时,定义由GIS功能的需要。解析定义缓存在数据字典缓存以便解析开销不是每个语句需要SRS信息发生。

  • DESCRIPTION

    空间参考系统的描述

笔记

  • 这个SRS_NAME组织ORGANIZATION_COORDSYS_ID,和描述列包含可能感兴趣的用户的信息,但他们不使用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_NAMEWGS 84)和AP(IDSRS _ ID)4326,这是用的ID欧洲石油调查组(EPSG)

这个DEFINITION值的投影和地理状况开始projcsGEOGCS,分别。为零的定义是特殊的方案有一个空的定义价值。下面的查询确定在多少条目ST_SPATIAL_REFERENCE_SYSTEMS表对应的投影,地理,和其他影响因素,基于定义价值观:

mysql> SELECT
         COUNT(*),
         CASE LEFT(DEFINITION, 6)
           WHEN 'PROJCS' THEN 'Projected'
           WHEN 'GEOGCS' THEN 'Geographic'
           ELSE 'Other'
         END AS SRS_TYPE
       FROM ST_SPATIAL_REFERENCE_SYSTEMS
       GROUP BY SRS_TYPE;
+----------+------------+
| COUNT(*) | SRS_TYPE   |
+----------+------------+
|        1 | Other      |
|     4668 | Projected  |
|      483 | Geographic |
+----------+------------+

使存储在数据字典中的条目的SRS操作,MySQL提供了这些SQL语句:

24.26 information_schema表表

这个TABLES表提供了有关数据库表。

TABLES代表举行的缓存值统计表。这个information_schema_stats_expiry系统变量定义了前一段时间的缓存表统计到期。默认值是86400秒(24小时)。如果没有缓存的统计或统计已经过期,数据从存储引擎在查询统计表列检索。更新缓存值在任何时间对于一个给定的表,使用ANALYZE TABLE。要检索的最新统计数据直接从存储引擎,集information_schema_stats_expiry。有关更多信息,参见8.2.3章节,“优化information_schema查询”

笔记

如果innodb_read_only系统变量是启用,ANALYZE TABLE可能会失败,因为它不能在数据字典更新统计表,并使用InnoDB。为ANALYZE TABLE操作更新密钥分配,即使操作更新表本身可能出现故障(例如,如果它是一个MyISAM表)。为了获得更新的统计分布,集information_schema_stats_expiry=0

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLE_CATALOGdef
TABLE_SCHEMATable_
TABLE_NAMETable_
TABLE_TYPE
ENGINEEnginemysql扩展
VERSIONVersion这个.frm文件版本。与去除。FRM在MySQL 8的文件,这个领域现在报道一个硬编码的值10,这是最后一次。FRM使用MySQL 5.7版本。
ROW_FORMATRow_formatmysql扩展
TABLE_ROWSRowsmysql扩展
AVG_ROW_LENGTHAvg_row_lengthmysql扩展
DATA_LENGTHData_lengthmysql扩展
MAX_DATA_LENGTHMax_data_lengthmysql扩展
INDEX_LENGTHIndex_lengthmysql扩展
DATA_FREEData_freemysql扩展
AUTO_INCREMENTAuto_incrementmysql扩展
CREATE_TIMECreate_timemysql扩展
UPDATE_TIMEUpdate_timemysql扩展
CHECK_TIMECheck_timemysql扩展
TABLE_COLLATIONCollationmysql扩展
CHECKSUMChecksummysql扩展
CREATE_OPTIONSCreate_optionsmysql扩展
TABLE_COMMENTCommentmysql扩展

笔记

  • 参考SHOW TABLE STATUSFor field disabence .

  • TABLE_SCHEMA是一个单一的领域中SHOW显示,例如_ _ DB1在桌子上

  • TABLE_TYPE应该是基表VIEW。这个TABLES表不表临时

  • For artictionable tables,theENGINE栏显示所有分区使用的存储引擎的名称。(此前,此列显示分区对于这样的表。)

  • 这个TABLE_ROWS无效的如果表中的INFORMATION_SCHEMA数据库

    InnoDB表格行数只用于SQL优化的粗略估计。(这是真的如果InnoDB表分区。)

  • 这个DATA_FREE列显示的字节的空闲空间InnoDB

  • UPDATE_TIME显示最后的时间戳值UPDATEINSERT,或DELETE执行InnoDB不分区表。对于MVCC,时间戳值反映了COMMIT时间,这被认为是最后更新时间。时间戳是不是坚持当服务器重新启动或当表被逐出InnoDB数据字典缓存

  • 对于分区InnoDBTable,thecheck_time柱总是NULL

  • 我们没有为表的默认字符集。TABLE_COLLATION接近,因为排序规则名称以一个字符集的名字开始。

  • 这个CREATE_OPTIONS列显示分区如果表分区。它也显示了ENCRYPTION指定创建或修改的文件表空间时的选择。本栏不显示指定创建或修改表空间时,一般的加密选项。这个INNODB_TABLESPACES加密场适用于文件的每个表和一般的表空间。

下列陈述是等价的:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  [AND table_name LIKE 'wild']

SHOW TABLES
  FROM db_name
  [LIKE 'wild']

24.27 information_schema表空间表

这个TABLESPACES表提供了有关活动的表空间信息。

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLESPACE_NAMEmysql扩展
ENGINEmysql扩展
TABLESPACE_TYPEmysql扩展
LOGFILE_GROUP_NAMEmysql扩展
EXTENT_SIZEmysql扩展
AUTOEXTEND_SIZEmysql扩展
MAXIMUM_SIZEmysql扩展
NODEGROUP_IDmysql扩展
TABLESPACE_COMMENTmysql扩展

笔记

这个INFORMATION_SCHEMA.TABLESPACES表不提供信息InnoDB表空间。为InnoDB表空间元数据,看INNODB_TABLESPACESINNODB_DATAFILES。这个INFORMATION_SCHEMA.FILES表格还提供元数据InnoDB表空间

24.28 information_schema table_constraints表

这个TABLE_CONSTRAINTS表描述表的约束

这个TABLE_CONSTRAINTS这些列的表:

  • CONSTRAINT_CATALOG

    名称的目录的约束。该列的值总是def

  • CONSTRAINT_SCHEMA

    架构的名称所属的约束。

  • TABLE_SCHEMA

    the name of the to which the table belongs模式。

  • TABLE_NAME

    的名称的表

  • 这个CONSTRAINT_TYPE

    The Type of Constraint .The value can beUNIQUE主键FOREIGN KEY,或检查。这是一个CHAR(不ENUMcolumn)。《检查值到MySQL支持不可用CHECK

    这个UNIQUEprimary key信息是一样的你从中得到什么Key_name场输出SHOW INDEX不是唯一的0

24.29的information_schema table_privileges表

这个TABLE_PRIVILEGES表提供了有关权限信息表。此信息来自mysql.tables _私法授权表

这个TABLE_PRIVILEGES这些列的表:

  • GRANTEE

    的帐户名,特权是理所当然的,在'user_name'@'host_name'格式

  • TABLE_CATALOG

    名称所属目录表。价值总是def

  • TABLE_SCHEMA

    the name of the to which the table belongs模式。

  • TABLE_NAME

    的名称的表

  • PRIVILEGE_TYPE

    授予的特权。价值是一个(只有一个)这些值:SELECTINSERTUPDATEREFERENCESALTERINDEXDROPCREATE VIEW

  • IS_GRANTABLE

    YES如果用户有GRANT OPTION特权,另有。不狡猾的输出GRANT OPTION这些单独的权限

下面的语句是等效:

SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES

SHOW GRANTS ...

24.30 information_schema触发器表

这个TRIGGERS表提供了有关触发器。看到一个表的触发器的信息,你必须TRIGGER特权的表

INFORMATION_SCHEMA姓名SHOW姓名评论
TRIGGER_CATALOGdef
TRIGGER_SCHEMA
TRIGGER_NAMETrigger
EVENT_MANIPULATIONEvent
EVENT_OBJECT_CATALOGdef
EVENT_OBJECT_SCHEMA
EVENT_OBJECT_TABLETable
ACTION_ORDER
ACTION_CONDITIONNULL
ACTION_STATEMENTStatement
ACTION_ORIENTATIONROW
ACTION_TIMINGTiming
ACTION_REFERENCE_OLD_TABLENULL
ACTION_REFERENCE_NEW_TABLENULL
ACTION_REFERENCE_OLD_ROWOLD
ACTION_REFERENCE_NEW_ROWNEW
CREATEDCreated
SQL_MODEsql_modemysql扩展
DEFINERDefinermysql扩展
CHARACTER_SET_CLIENTcharacter_set_clientmysql扩展
COLLATION_CONNECTIONcollation_connectionmysql扩展
DATABASE_COLLATIONDatabase Collationmysql扩展

笔记

  • 在的名字SHOW姓名柱是指SHOW TRIGGERS声明,不SHOW CREATE TRIGGER。看到第13.7.6.38,“显示触发器语法”

  • TRIGGER_SCHEMA触发_ name:对数据库中的触发器发生和触发的名称,分别。

  • EVENT_MANIPULATION:触发事件。这是操作的类型对相关表的触发器激活。的价值“插入”(排插),'DELETE'(连续被删除),或“更新”(modified行)。

  • EVENT_OBJECT_SCHEMAevent_object_table:如第23,“使用触发器”,每触发一个表关联。这些列显示该表时,数据库和表名,分别。

  • ACTION_ORDER:的触发的动作在触发器的列表在同一个表中具有相同的序号位置_操纵事件ACTION_TIMING价值观

  • ACTION_STATEMENT:触发体;即,语句执行时触发激活。本文采用gb3212编码。

  • ACTION_ORIENTATION:总是包含价值“行”

  • ACTION_TIMING:是否触发激活之前或之后的触发事件。的价值“之前”'AFTER'

  • ACTION_REFERENCE_OLD_ROWaction_reference_new_row:旧的和新的柱标识,分别。这意味着,ACTION_REFERENCE_OLD_ROW总是会有价值“老”ACTION_REFERENCE_NEW_ROW总是会有价值“新”

  • CREATED:日期和时间时,触发器的创建。这是一个时间戳(二)价值(与小数部分以百分之一秒)触发器。

  • SQL_MODE:SQL模式的效果时,触发器的创建,并在触发器执行。的允许值,见第5.1.10,”服务器的SQL模式”

  • DEFINER:谁创造了触发用户帐户,在'user_name“@”host_name'格式

  • CHARACTER_SET_CLIENT的会话值:character_set_client系统变量时,触发器的创建。

  • COLLATION_CONNECTION的会话值:collation_connection系统变量时,触发器的创建。

  • DATABASE_COLLATION:整理数据库的触发器是相关的。

  • 目前总是包含以下列NULL_ condition actionACTION_REFERENCE_OLD_TABLE,和action_reference_new_table

例如,使用ins_sum触发器的定义第23,“使用触发器”

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: 2017-03-30 20:29:39.06
                  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: utf8
      COLLATION_CONNECTION: utf8_general_ci
        DATABASE_COLLATION: utf8mb4_0900_ai_ci

24.31 information_schema user_privileges表

这个USER_PRIVILEGES表提供了有关全球特权信息。此信息来自mysql.user授权表

INFORMATION_SCHEMA姓名SHOW姓名评论
GRANTEE'user_name'@'host_name'值,MySQL扩展
TABLE_CATALOGdef,mysql扩展
PRIVILEGE_TYPEmysql扩展
IS_GRANTABLEmysql扩展

笔记

  • 这个USER_PRIVILEGES表是一个非标准的information_schema表从它的价值mysql.user

24.32 information_schema意见表

这个VIEWS表提供了有关数据库的视图。你必须有SHOW VIEW权限访问此表

INFORMATION_SCHEMA姓名SHOW姓名评论
TABLE_CATALOGdef
TABLE_SCHEMA
TABLE_NAME
VIEW_DEFINITION
CHECK_OPTION
IS_UPDATABLE
DEFINER
SECURITY_TYPE
CHARACTER_SET_CLIENTmysql扩展
COLLATION_CONNECTIONmysql扩展

笔记

  • 这个VIEW_DEFINITION柱上有大多数你所看到的创建表SHOW CREATE VIEW生产.跳过的话SELECT跳过的话检查选项。假设最初的声明:

    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_OPTION柱有价值CASCADE,或当地

  • MySQL设置标志,称为可更新视图的旗帜,在CREATE VIEW时间标志设置为(真的)如果UPDATEDELETE(和类似的操作)是法律的观点。否则,标志设置为(假)。这个IS_UPDATABLE列在VIEWS表格显示此标志的状态。这意味着服务器总是知道一个视图是可更新的。

    如果一个视图是不可更新的,这样的陈述UPDATEDELETE,和INSERT是非法的,将被拒绝。(注意:即使一个视图是可更新的,它可能无法插入;详情参见第23.5.3,”Updatable和可插入的意见”。)

  • DEFINER:谁创造了查看用户的账号,在'user_name“@”host_name'格式security_type有一个值DEFINER调用

  • CHARACTER_SET_CLIENT的会话值:character_set_client系统变量当视图创建

  • COLLATION_CONNECTION的会话值:collation_connection系统变量当视图创建

MySQL可以让你用不同的sql_mode设置告诉服务器支持的SQL语法类型。例如,您可以使用ANSIMySQL SQL模式确保正确地解释标准的SQL连接操作符,双杆(| |),在你的查询。如果你创建一个视图,项目,你可能会担心改变sql_mode设置一个值不同ANSI可能导致视图无效。但是这是没有的情况下。无论你如何写一个视图定义、MySQL总是存储方式也相同,在一个规范的形式。这里有一个例子,说明服务器双杆串联运算符更改为CONCAT()功能:

MySQL的>SET sql_mode = 'ANSI';查询好,为受影响的行(0.001秒)MySQL >CREATE VIEW test.v AS SELECT 'a' || 'b' as col1;查询好,为受影响的行(0.001秒)MySQL >SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWSWHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';---------------------------------- | view_definition | ---------------------------------- |选择concat(A,B)为` col1 ` | ---------------------------------- 1行集(0秒)

在标准形式存储视图定义的优点是修改后的值sql_mode不会影响从查看结果。但是另外一个后果是,评论之前SELECT被剥夺的定义由服务器。

24.33的information_schema view_routine_usage表

这个VIEW_ROUTINE_USAGE表(可作为MySQL 8.0.13)提供了用于存储信息的视图定义功能。(表中没有列出有关SQL函数或用户定义函数的定义中使用。)

你可以看到的信息只为你有特权的观点,只有功能,你有特权。

VIEW_ROUTINE_USAGE这些列有:

  • TABLE_CATALOG

    名称的目录,查看

  • TABLE_SCHEMA

    架构的名称的视图

  • TABLE_NAME

    视图名称

  • SPECIFIC_CATALOG

    名称的目录,用视图定义中的功能。

  • SPECIFIC_SCHEMA

    架构的名称,用视图定义中的功能。

  • SPECIFIC_NAME

    使用视图定义中的函数名称。

24.34 information_schema view_table_usage表

这个VIEW_TABLE_USAGE表(可作为MySQL 8.0.13)提供了访问信息的表和视图中使用的视图定义。

你可以看到的信息只为你有特权的观点,只为表,你有特权。

VIEW_TABLE_USAGE这些列有:

  • VIEW_CATALOG

    名称的目录,查看

  • VIEW_SCHEMA

    架构的名称的视图

  • VIEW_NAME

    视图名称

  • TABLE_CATALOG

    名称的目录表或视图所使用的视图定义。

  • TABLE_SCHEMA

    架构的名称的表或视图的视图定义中使用。

  • TABLE_NAME

    用视图定义中的表或视图的名称。

24.35 information_schema InnoDB表

24.35.1的information_schema innodb_buffer_page表
24.35.2的information_schema innodb_buffer_page_lru表
24.35.3的information_schema innodb_buffer_pool_stats表
24.35.4的information_schema innodb_cached_indexes表
24.35.5的information_schema innodb_cmp和innodb_cmp_reset表
24.35.6的information_schema innodb_cmpmem和innodb_cmpmem_reset表
24.35.7的information_schema innodb_cmp_per_index andinnodb_cmp_per_index_reset表
24.35.8的information_schema innodb_ft_being_deleted表
24.35.9的information_schema innodb_ft_config表
24.35.10的information_schema innodb_ft_default_stopword表
24.35.11的information_schema innodb_ft_deleted表
24.35.12的information_schema innodb_ft_index_cache表
24.35.13的information_schema innodb_ft_index_table表
24.35.14的information_schema innodb_locks表
24.35.15的information_schema innodb_lock_waits表
24.35.16的information_schema innodb_metrics表
24.35.17的information_schema innodb_columns表
24.35.18的information_schema innodb_datafiles表
24.35.19的information_schema innodb_fields表
24.35.20的information_schema innodb_foreign表
24.35.21的information_schema innodb_foreign_cols表
24.35.22的information_schema innodb_indexes表
24.35.23的information_schema innodb_session_temp_tablespaces表
24.35.24的information_schema innodb_tables表
24.35.25的information_schema innodb_tablespaces表
24.35.26的information_schema innodb_tablespaces_brief表
24.35.27的information_schema innodb_tablestats观
24.35.28的information_schema innodb_virtual表
24.35.29的information_schema innodb_temp_table_info表
24.35.30的information_schema innodb_trx表

本节提供了表定义InnoDBinformation_schema表相关信息和例子,看“information_schema 15:14节,InnoDB表”

InnoDBinformation_schema持续监控表can be used toInnoDB活动中,他们变成问题之前检测效率低下,或解决性能和容量问题。为您的数据库变得越来越繁忙,遇到你的硬件能力的限制,监控和调整这些方面保持数据库平稳运行。

24.35.1的information_schema innodb_buffer_page表

这个INNODB_BUFFER_PAGE每个表保存信息网页InnoDB缓冲池

有关使用信息和例子,看第15.14.5“InnoDB缓冲池,information_schema表”

警告

查询INNODB_BUFFER_PAGE表格会影响性能。不查询此表在生产系统,除非你是知道的性能影响和决定了它是可以接受的。为了避免性能对生产系统的影响,再现你要调查和查询的一个测试实例缓冲池的统计问题。

表1 innodb_buffer_page柱

列名称描述
POOL_ID缓冲池ID标识符来区分多个缓冲池实例之间。
BLOCK_ID缓冲池块的ID
SPACE表空间使用相同的值作为ID。INNODB_TABLES.SPACE
PAGE_NUMBER页号
PAGE_TYPE页面类型。允许值:ALLOCATED(新分配的页),指数(B树节点),UNDO_LOG(撤消日志页),inode(INDEX Index),IBUF_FREE_LIST(插入缓冲空闲列表),ibuf _位图(插入缓冲区位图),SYSTEM系统(页面)trx _系统交易系统的数据)FILE_SPACE_HEADER(标题,文件空间)某种程度上,_描述符(某种程度上),页)BLOB(未压缩的BLOB页)compressed_blob(第一页,BLOB压缩)COMPRESSED_BLOB2(一subsequent公司网页)ibuf_index(插入缓冲指数),RTREE_INDEX(索引),_指数SDI(综合指数),SDI_BLOB(未压缩的SDI BLOB),_ SDI _压缩(压缩SDI BLOB),UNKNOWN(未知的),_ IO _压缩页(压缩页),PAGE_IO_ENCRYPTED(加密的网页),page_io_compressed_encrypted(压缩和加密的网页),ENCRYPTED_RTREE(加密的R-树),fil_page_type_unused(unused)RSEG_ARRAY(回滚段阵列),LOB索引(未压缩的赞扬指数)LOB_DATA(数据未经压缩的赞美)第一_ LOB(第一页的uncompressed LOB),ZLOB_FIRST(压缩高球第一页),_ Zlob日期(LOB数据压缩)ZLOB_INDEX压缩指数,赞美)Zlob _问(compressed LOB的片段),ZLOB_FRAG_ENTRY(压缩机片段碎片索引)
FLUSH_TYPE冲洗式
FIX_COUNT缓冲池内使用这一块的线程数。当零块有资格被驱逐。
IS_HASHED无论是哈希索引就建立在这个页面。
NEWEST_MODIFICATION日志序列number of the youngest修改。
OLDEST_MODIFICATIONLOG SeQuence number of the Oldest Prepment .
ACCESS_TIME用一个抽象的数量来判断网页的第一次访问时间。
TABLE_NAME名称表的页面属于。本栏目仅适用于页的类型INDEX
INDEX_NAME索引的网页名称属于。它可以是一个聚集索引或辅助索引的名称。本栏目仅适用于页的类型INDEX
NUMBER_RECORDS内页的记录数
DATA_SIZE笔的记录大小。本栏目仅适用于页的类型INDEX
COMPRESSED_SIZE压缩页面的大小。网页不压缩空。
PAGE_STATE页面状态。可能的值包括:NULL(洁净压缩网页,压缩页面在冲洗的清单,作为缓冲池看哨兵页),不_面板(在自由列表),READY_FOR_USE(Page是免费的),file_page(缓冲文件页)MEMORY(包含一个内存对象),remove_hash(Hash索引前应放置在自由列表中删除)。
IO_FIX指定是否任何I/O等待这一页:IO_NONE= no pending I/O,io_read= read pending,IO_WRITE= write pending.
IS_OLD指定是否嵌在LRU列表的子列表的老街区。
FREE_PAGE_CLOCK的价值freed_page_clock反当块是最后放在LRU列表的头。这个freed_page_clock计数器跟踪块从LRU列表的末尾移除的数量。

例子

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

笔记

  • 此表为专家级的性能监控主要是有用的,或在开发性能相关的扩展的MySQL。

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

  • 当表,表的行,分区或索引被删除,相关的页面停留在缓冲池直到空间是需要的其他数据。这个INNODB_BUFFER_PAGE表报告这些信息页面,直到他们被逐出了缓冲池。为更多的信息关于如何InnoDB管理缓冲池数据,看第15.6.3.1,“InnoDB缓冲池”

24.35.2的information_schema innodb_buffer_page_lru表

这个INNODB_BUFFER_PAGE_LRU表是在页面信息InnoDB缓冲池,尤其是他们下令在LRU列表,确定哪些页面驱逐从缓冲池,当它变得完整。

这个INNODB_BUFFER_PAGE_LRU表具有相同的列为INNODB_BUFFER_PAGE表,除了那INNODB_BUFFER_PAGE_LRU桌子上有一个_ LRU的位置而不是列BLOCK_ID专栏

有关使用信息和例子,看第15.14.5“InnoDB缓冲池,information_schema表”

警告

查询INNODB_BUFFER_PAGE_LRU表格会影响性能。不查询此表在生产系统,除非你是知道的性能影响和决定了它是可以接受的。为了避免性能对生产系统的影响,再现你要调查和查询的一个测试实例缓冲池的统计问题。

表24.2 innodb_buffer_page_lru柱

列名称描述
POOL_ID缓冲池ID标识符来区分多个缓冲池实例之间。
LRU_POSITION该页在LRU列表中的位置。
SPACE表空间使用相同的值作为ID。INNODB_TABLES.SPACE
PAGE_NUMBER页号
PAGE_TYPE页面类型。允许值:ALLOCATED(新分配的页),指数(B树节点),UNDO_LOG(撤消日志页),inode(INDEX Index),IBUF_FREE_LIST(插入缓冲空闲列表),ibuf _位图(插入缓冲区位图),SYSTEM系统(页面)trx _系统交易系统的数据)FILE_SPACE_HEADER(标题,文件空间)某种程度上,_描述符(某种程度上),页)BLOB(未压缩的BLOB页)compressed_blob(第一页,BLOB压缩)COMPRESSED_BLOB2(一subsequent公司网页)ibuf_index(插入缓冲指数),RTREE_INDEX(索引),_指数SDI(综合指数),SDI_BLOB(未压缩的SDI BLOB),_ SDI _压缩(压缩SDI BLOB),UNKNOWN(未知的),_ IO _压缩页(压缩页),PAGE_IO_ENCRYPTED(加密的网页),page_io_compressed_encrypted(压缩和加密的网页),ENCRYPTED_RTREE(加密的R-树),fil_page_type_unused(unused)RSEG_ARRAY(回滚段阵列),LOB索引(未压缩的赞扬指数)LOB_DATA(数据未经压缩的赞美)第一_ LOB(第一页的uncompressed LOB),ZLOB_FIRST(压缩高球第一页),_ Zlob日期(LOB数据压缩)ZLOB_INDEX压缩指数,赞美)Zlob _问(compressed LOB的片段),ZLOB_FRAG_ENTRY(压缩机片段碎片索引)
FLUSH_TYPE冲洗式
FIX_COUNT缓冲池内使用这一块的线程数。当零块有资格被驱逐。
IS_HASHED无论是哈希索引就建立在这个页面。
NEWEST_MODIFICATION日志序列number of the youngest修改。
OLDEST_MODIFICATIONLOG SeQuence number of the Oldest Prepment .
ACCESS_TIME用一个抽象的数量来判断网页的第一次访问时间。
TABLE_NAME名称表的页面属于。本栏目仅适用于页的类型INDEX
INDEX_NAME索引的网页名称属于。它可以是一个聚集索引或辅助索引的名称。本栏目仅适用于页的类型INDEX
NUMBER_RECORDS内页的记录数
DATA_SIZE笔的记录大小。本栏目仅适用于页的类型INDEX
COMPRESSED_SIZE压缩页面的大小。网页不压缩空。
PAGE_STATE页面状态。可能的值包括:NULL(洁净压缩网页,压缩页面在冲洗的清单,作为缓冲池看哨兵页),不_面板(在自由列表),READY_FOR_USE(Page是免费的),file_page(缓冲文件页)MEMORY(包含一个内存对象),remove_hash(Hash索引前应放置在自由列表中删除)。
IO_FIX指定是否任何I/O等待这一页:IO_NONE= no pending I/O,io_read= read pending,IO_WRITE= write pending.
IS_OLD指定是否嵌在LRU列表的子列表的老街区。
FREE_PAGE_CLOCK的价值freed_page_clock反当块是最后放在LRU列表的头。这个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查询该表的权限

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 查询这个表需要MySQL分配大的连续内存块,超过64字节时间缓冲池内活跃的页面数。这个配置可能导致内存不足错误,尤其是对于多字节的缓冲池系统。

  • 查询这个表需要MySQL锁的数据结构的缓冲池,在遍历LRU列表,可以减少并发,尤其是多字节的缓冲池系统。

  • 当表,表的行,分区或索引被删除,相关的页面停留在缓冲池直到空间是需要的其他数据。这个INNODB_BUFFER_PAGE_LRU表报告这些信息页面,直到他们被逐出了缓冲池。为更多的信息关于如何InnoDB管理缓冲池数据,看第15.6.3.1,“InnoDB缓冲池”

24.35.3的information_schema innodb_buffer_pool_stats表

这个INNODB_BUFFER_POOL_STATS表提供了许多相同的缓冲池信息提供显示引擎INNODB STATUS输出。同样的信息也可以获得使用InnoDB缓冲池服务器状态变量

在缓冲池页面的想法年轻不年轻了是指将他们之间的子列表在缓冲池中的数据结构的头和尾。页面年轻需要更长时间的年龄从缓冲池,而页面不年轻了移动更接近一点驱逐

有关使用信息和例子,看第15.14.5“InnoDB缓冲池,information_schema表”

表24.3 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_TOTALLRU IO总
LRU_IO_CURRENTLRU IO为当前区间
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。

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.4的information_schema innodb_cached_indexes表

这个INNODB_CACHED_INDEXES表报告的索引页面缓存在数InnoDB每个索引缓冲池

表24.4 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。行*************************** index_id:65n_cached_pages:451列集(0.001秒)

此查询返回索引页缓存的数量InnoDB每个索引缓冲池,并采用INNODB_INDEXESINNODB_TABLES 针对每个表名和索引名称index_id价值

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;

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.5的information_schema innodb_cmp和innodb_cmp_reset表

这个INNODB_CMP_ InnoDB _ PMC重置表包含业务相关的状态信息压缩的InnoDB

对innodb_cmp和innodb_cmp_reset列表24.5

列名称描述
PAGE_SIZE压缩页面的大小字节
COMPRESS_OPS次B-tree页的大小和数量PAGE_SIZE被压缩。网页压缩每当空页创建或修改日志的压缩空间耗尽。
COMPRESS_OPS_OK次B-tree页的大小和数量PAGE_SIZE已经压缩成功。这个数不能超过compress_ops
COMPRESS_TIME在秒花在试图压缩B-tree页面总时间的大小PAGE_SIZE
UNCOMPRESS_OPS次B-tree页的大小和数量PAGE_SIZE被压缩的。树页就会被解压压缩失败或在第一次访问时,未压缩的页面不在缓冲池中存在。
UNCOMPRESS_TIME在秒花在解压B-tree页面大小的总时间PAGE_SIZE

例子

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

笔记

24.35.6的information_schema innodb_cmpmem和innodb_cmpmem_reset表

这个INNODB_CMPMEMinnodb_cmpmem_reset表包含状态信息的压缩网页InnoDB缓冲池

对innodb_cmpmem和innodb_cmpmem_reset列表24.6

列名称描述
PAGE_SIZE在字节大小的块。每个记录本表描述了这个大小的块。
BUFFER_POOL_INSTANCE对缓冲池的实例的唯一标识符。
PAGES_USED的大小的块的数量PAGE_SIZE目前正在使用
PAGES_FREE的大小的块的数量PAGE_SIZE这是目前可供配置。此列显示在内存池的外部碎片。理想的情况是,这些数字应该在最。
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

笔记

24.35.7的information_schema innodb_cmp_per_index andinnodb_cmp_per_index_reset表

这个INNODB_CMP_PER_INDEXinnodb_cmp_per_index_reset表包含业务相关的状态信息压缩的InnoDB表和索引,对数据库、表、每个组合分开统计和指标,来帮助你评估特定表和有用的压缩性能。

一个压缩InnoDB表的表数据和所有次要指标压缩。在这种情况下,表中的数据被视为只是一个指标,一个是包含所有的列:聚集索引

对innodb_cmp_per_index和innodb_cmp_per_index_reset列表24.7

列名称描述
DATABASE_NAMEDatabase containing the applicable Table Table .
TABLE_NAME表压缩统计监测
INDEX_NAME为压缩统计监测指标
COMPRESS_OPS一些压缩操作尝试网页压缩时,空白页创建或空间的压缩修改日志耗尽。
COMPRESS_OPS_OK成功的压缩操作数。减去从COMPRESS_OPS得到的数的值压缩失败。除以COMPRESS_OPS得到压缩失败的百分比值。
COMPRESS_TIME在秒的CPU时间,总金额,用于在该指数的数据压缩。
UNCOMPRESS_OPSnumber of解码操作执行。压缩InnoDB当页面是uncompressed压缩失败,或第一次访问页面的压缩缓冲池与未压缩的页面不存在。
UNCOMPRESS_TIME在秒的CPU时间,总金额,用于在该索引压缩数据。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX\G
*************************** 1. row ***************************
  database_name: employees
     table_name: salaries
     index_name: PRIMARY
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 23451
uncompress_time: 4
*************************** 2. row ***************************
  database_name: employees
     table_name: salaries
     index_name: emp_no
   compress_ops: 0
compress_ops_ok: 0
  compress_time: 0
 uncompress_ops: 1597
uncompress_time: 0

笔记

24.35.8的information_schema innodb_ft_being_deleted表

这个INNODB_FT_BEING_DELETED表的一个快照INNODB_FT_DELETED表仅用于在OPTIMIZE TABLE维护操作。什么时候OPTIMIZE TABLE是跑的innodb_ft_being_deleted表是空的,和doc_ids远离INNODB_FT_DELETED表因为内容innodb_ft_being_deleted通常有一个短暂的一生中,这台具有有限的监控和调试工具。有关运行OPTIMIZE TABLE在表全文指标,看第12.9.6,“微调MySQL全文搜索”

这个表最初出现空,直到你设置的配置变量的值innodb_ft_aux_table。输出出现类似为例INNODB_FT_DELETED

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

表24.8 innodb_ft_being_deleted柱

列名称描述
DOC_ID该行正在被删除的文件。这个值可以反映一个ID列,你定义的基础表的值,也可以是一个生成的序列值InnoDB当表中没有一个合适的柱。这个值是用来跳过的行innodb_ft_index_table表,当你做文本搜索已删除的行数据之前,身体从全文指数的OPTIMIZE TABLE声明。看到InnoDB全文索引优化更多信息

笔记

24.35.9的information_schema innodb_ft_config表

这个INNODB_FT_CONFIG表格显示的元数据全文一个指数和相关处理InnoDB

在你查询这个表,设置配置变量innodb_ft_aux_table的名称(包括数据库名称)的表包含全文指数,例如test/articles

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

表24.9 innodb_ft_config柱

列名称描述
KEY名称指定的元数据项的InnoDB表包含一个全文指数
VALUE与之相应的价值KEY柱,反映出一些限制或电流值的一个方面全文指数为InnoDB

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG;
+---------------------------+-------------------+
| KEY                       | VALUE             |
+---------------------------+-------------------+
| optimize_checkpoint_limit | 180               |
| synced_doc_id             | 0                 |
| stopword_table_name       | test/my_stopwords |
| use_stopword              | 1                 |
+---------------------------+-------------------+

笔记

  • 本表仅用于内部配置。它的目的不是为统计信息的目的。

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

  • 的价值观KEY柱可能演变取决于需求的性能优化和调试InnoDB全文处理。核心价值观:

    • optimize_checkpoint_limitwhich after the number of seconds:安OPTIMIZE TABLE将停止

    • synced_doc_id下:DOC _ ID将发行

    • stopword_table_name:thedatabase/table一个用户定义的表名称的词。这场出现空如果没有自定义词表。

    • use_stopword:指示是否一词用桌子,它的定义是当全文创建索引

  • 为更多的信息关于InnoDB全文搜索,看到第15.8.2.4,“InnoDB全文索引”,和12.9节,“全文搜索功能”

24.35.10的information_schema innodb_ft_default_stopword表

这个INNODB_FT_DEFAULT_STOPWORD桌上有一列停用词这是默认的创建FULLTEXT指数在InnoDB表有关默认信息InnoDB停用词列表和如何定义自己的停用词列表,参见第12.9.4,“全文构建”

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

表24.10 innodb_ft_default_stopword柱

列名称描述
value这个词是用来作为一个词为默认FULLTEXT指标InnoDB表不要使用如果你重写默认的停用词处理是innodb_ft_server_stopword_tableinnodb_ft_user_stopword_table选项

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
+-------+
| value |
+-------+
| a     |
| about |
| an    |
| are   |
| as    |
| at    |
| be    |
| by    |
| com   |
| de    |
| en    |
| for   |
| from  |
| how   |
| i     |
| in    |
| is    |
| it    |
| la    |
| of    |
| on    |
| or    |
| that  |
| the   |
| this  |
| to    |
| was   |
| what  |
| when  |
| where |
| who   |
| will  |
| with  |
| und   |
| the   |
| www   |
+-------+
36 rows in set (0.00 sec)

笔记

24.35.11的information_schema innodb_ft_deleted表

这个INNODB_FT_DELETED表中删除记录行全文指数为InnoDB表为了避免昂贵的索引重组在DML操作的InnoDBFULLTEXT关于新指标,删除的文字信息分别存储,过滤搜索结果的时候你做文本搜索,然后取出主要的搜索指数只有当你的问题OPTIMIZE TABLE声明为InnoDB表看到InnoDB全文索引优化更多信息

这个表最初出现空,直到你设置的配置变量的值innodb_ft_aux_table的名称(包括数据库名称)的表包含全文指数,例如test/articles

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

表24.11 innodb_ft_deleted柱

列名称描述
DOC_ID最新的文档ID已删除的行。这个值可以反映一个ID列,你定义的基础表的值,也可以是一个生成的序列值InnoDB当表中没有一个合适的柱。这个值是用来跳过的行innodb_ft_index_table表,当你做文本搜索已删除的行数据之前,身体从全文指数的OPTIMIZE TABLE声明。看到InnoDB全文索引优化更多信息

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;
+--------+
| DOC_ID |
+--------+
|      6 |
|      7 |
|      8 |
+--------+

笔记

24.35.12的information_schema innodb_ft_index_cache表

INNODB_FT_INDEX_CACHE:包含新插入的行在令牌信息全文指数为了避免昂贵的索引重组在DML操作,了解新的索引词的信息分别存储,并结合主要的搜索指数只有OPTIMIZE TABLE运行时,当服务器关闭,或者当缓存的大小超过一个极限的定义innodb_ft_cache_sizeinnodb_ft_total_cache_size

在你查询这个表,设置配置变量innodb_ft_aux_table的名称(包括数据库名称)的表包含全文指数,例如test/articles

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

表24.12 innodb_ft_index_cache柱

列名称描述
WORD从新插入的行的文本中提取一个字。
FIRST_DOC_ID第一个文档ID,这个词出现在FULLTEXT指数
LAST_DOC_ID最后的文档ID,这个词出现在FULLTEXT指数
DOC_COUNT行数中出现这个词FULLTEXT指数同一个词可以发生几次缓存表中,每一次的组合DOC _ IDPOSITION价值观
DOC_ID最新插入的行的文档ID。这个值可以反映一个ID列,你定义的基础表的值,也可以是一个生成的序列值InnoDB当表中没有一个合适的柱。
POSITION这个实例的字识别的相关文档中的位置DOC_ID价值。的价值并不代表绝对位置;它是一个偏移量添加到位置对这个词的前一个实例。

笔记

  • 这个表最初出现空,直到你设置的配置变量的值innodb_ft_aux_table。下面的示例演示如何使用innodb_ft_aux_table选择显示的有关信息全文为指定的表索引

    mysql> USE test;
    
    mysql> CREATE TABLE articles (
          id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
          title VARCHAR(200),
          body TEXT,
          FULLTEXT (title,body)
        ) ENGINE=InnoDB;
    
    mysql> INSERT INTO articles (title,body) VALUES
        ('MySQL Tutorial','DBMS stands for DataBase ...'),
        ('How To Use MySQL Well','After you went through a ...'),
        ('Optimizing MySQL','In this tutorial we will show ...'),
        ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
        ('MySQL vs. YourSQL','In the following database comparison ...'),
        ('MySQL Security','When configured properly, MySQL ...');
    
    mysql> SET GLOBAL innodb_ft_aux_table = 'test/articles';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> USE INFORMATION_SCHEMA;
    
    mysql> SELECT word, doc_count, doc_id, position FROM INNODB_FT_INDEX_CACHE LIMIT 5;
    +------------+-----------+--------+----------+
    | word       | doc_count | doc_id | position |
    +------------+-----------+--------+----------+
    | 1001       |         1 |      4 |        0 |
    | after      |         1 |      2 |       22 |
    | comparison |         1 |      5 |       44 |
    | configured |         1 |      6 |       20 |
    | database   |         2 |      1 |       31 |
    +------------+-----------+--------+----------+
    
  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

  • 为更多的信息关于InnoDB全文搜索,看到第15.8.2.4,“InnoDB全文索引”,和12.9节,“全文搜索功能”

24.35.13的information_schema innodb_ft_index_table表

这个INNODB_FT_INDEX_TABLE表格显示的倒排索引用于处理文本搜索的信息全文指数的InnoDB

有关使用信息和例子,看第15.14.4,“InnoDB information_schema全文索引表”

在你查询这个表,设置配置变量innodb_ft_aux_table的名称(包括数据库名称)的表包含全文指数,例如test/articles

表24.13 innodb_ft_index_table柱

列名称描述
WORD从这一部分的列的文本中提取一个字FULLTEXT
FIRST_DOC_ID第一个文档ID,这个词出现在FULLTEXT指数
LAST_DOC_ID最后的文档ID,这个词出现在FULLTEXT指数
DOC_COUNT行数中出现这个词FULLTEXT指数同一个词可以发生几次缓存表中,每一次的组合DOC _ IDPOSITION价值观
DOC_ID含字行的文档ID。这个值可以反映一个ID列,你定义的基础表的值,也可以是一个生成的序列值InnoDB当表中没有一个合适的柱。
POSITION这个实例的字识别的相关文档中的位置DOC_ID价值

笔记

  • 这个表最初出现空,直到你设置的配置变量的值innodb_ft_aux_table。下面的示例演示如何使用innodb_ft_aux_table选择显示的有关信息全文为指定的表索引。在新插入的行中出现的信息INNODB_FT_INDEX_TABLE,的全文索引缓存必须被刷新到磁盘。这是通过运行完成OPTIMIZE TABLE对索引表的操作innodb_optimize_fulltext_only=ON

    MySQL的>USE test;MySQL的>CREATE TABLE articles (
          id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
          title VARCHAR(200),
          body TEXT,
          FULLTEXT (title,body)
        ) ENGINE=InnoDB;MySQL的>INSERT INTO articles (title,body) VALUES
        ('MySQL Tutorial','DBMS stands for DataBase ...'),
        ('How To Use MySQL Well','After you went through a ...'),
        ('Optimizing MySQL','In this tutorial we will show ...'),
        ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
        ('MySQL vs. YourSQL','In the following database comparison ...'),
        ('MySQL Security','When configured properly, MySQL ...');MySQL的>SET GLOBAL innodb_optimize_fulltext_only=ON;查询好,为受影响的行(0.001秒)MySQL >OPTIMIZE TABLE articles;--------------- ---------- ---------- ---------- |表| OP | msg_type | msg_text | --------------- ---------- ---------- ---------- | test.articles |优化|状态|好| --------------- ---------- ---------- ---------- MySQL >SET GLOBAL innodb_ft_aux_table = 'test/articles';查询好,为受影响的行(0.001秒)MySQL >USE INFORMATION_SCHEMA;MySQL的>SELECT word, doc_count, doc_id, position FROM INNODB_FT_INDEX_TABLE LIMIT 5;------------ ----------- -------- ---------- |字| doc_count | doc_id |位置| ------------ ----------- -------- ---------- | 1001 | 1 | 4 | 0 | |后| 1 | 2 | 22 | |比较| 1 | 5 | 44 | |配置| 1 | 6 | 20 | |数据库| 2 | 1 | 31 | ------------ ----------- -------- ----------
  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

  • 为更多的信息关于InnoDB全文搜索,看到第15.8.2.4,“InnoDB全文索引”,和12.9节,“全文搜索功能”

24.35.14的information_schema innodb_locks表

这个INNODB_LOCKS表包含关于每个锁信息,InnoDB交易已请求但尚未获得,每个锁的交易,认为是阻止另一个事务。

笔记

这张桌子是过时的,是作为MySQL 8.0.1删除。使用性能模式data_locks表代替。看到第25.11.12.1,“data_locks表”

之间的差异INNODB_LOCKSdata_locks

  • 如果一个事务持有的锁,INNODB_LOCKS显示锁只有另一个事务正在等待它。data_locks显示锁无论任何交易正在等待它。

  • 这个data_locks表没有列对应锁_空间LOCK_PAGE,或lock_rec

  • 这个INNODB_LOCKS表需要全球PROCESSprivilege。的data_locks表格需要平时表现图式的特权SELECT要从表中选择

下表显示了映射INNODB_LOCKSdata_locks专栏使用此信息的应用程序迁移到另一台。

表24.14 innodb_locks data_locks列映射到

innodb_locks柱data_locks柱
LOCK_IDENGINE_LOCK_ID
LOCK_TRX_IDENGINE_TRANSACTION_ID
LOCK_MODELOCK_MODE
LOCK_TYPELOCK_TYPE
LOCK_TABLE(联合模式/表名)OBJECT_SCHEMA模式(name)object_name(表名)
LOCK_INDEXINDEX_NAME
LOCK_SPACE
LOCK_PAGE
LOCK_REC
LOCK_DATALOCK_DATA

24.35.15的information_schema innodb_lock_waits表

这个INNODB_LOCK_WAITS表中的一行或多行每个堵塞InnoDB交易,说明锁请求和任何锁被阻断,请求。

笔记

这张桌子是过时的,是作为MySQL 8.0.1删除。使用性能模式data_lock_waits表代替。看到第25.11.12.2,“data_lock_waits表”

表中的权限要求的不同:INNODB_LOCK_WAITS表需要全球PROCESS特权。这个data_lock_waits表格需要平时表现图式的特权SELECT要从表中选择

下表显示了映射INNODB_LOCK_WAITSdata_lock_waits专栏使用此信息的应用程序迁移到另一台。

表映射到data_lock_waits列为innodb_lock_waits

innodb_lock_waits柱data_lock_waits柱
REQUESTING_TRX_IDREQUESTING_ENGINE_TRANSACTION_ID
REQUESTED_LOCK_IDREQUESTING_ENGINE_LOCK_ID
BLOCKING_TRX_IDBLOCKING_ENGINE_TRANSACTION_ID
BLOCKING_LOCK_IDBLOCKING_ENGINE_LOCK_ID

24.35.16的information_schema innodb_metrics表

INFORMATION_SCHEMA表列出了各种各样的InnoDB绩效信息,补充的具体重点领域PERFORMANCE_SCHEMAInnoDB。简单的查询,您可以检查系统的整体健康状况。更详细的查询,你可以诊断,如性能瓶颈,资源短缺的问题,和应用问题。

每个监测点代表在InnoDB源代码是使用收集计数器信息。每个计数器可以启动、停止、复位。你也可以使用一组共同的模块名称计数器执行这些操作。

默认情况下,相对较少的数据收集。启动、停止、复位计数器,你设置一个配置选项innodb_monitor_enableinnodb_monitor_disableinnodb_monitor_reset,或innodb_monitor_reset_all,利用计数器的名称,模块的名字,一个通配符匹配这样一个名字的使用%特殊字符,或关键字all

使用的信息,参见第15.14.6,“InnoDB information_schema度量表”

表24.16 innodb_metrics柱

列名称描述
NAME唯一的名字
SUBSYSTEM方面InnoDB这个度量适用于。看到名单后相应的模块名称使用的表设置全局语法
COUNT由于计数器功能的价值。
MAX_COUNT计数器启用以来的最大值。
MIN_COUNT计数器启用以来的最低值。
AVG_COUNT平均值从柜台启用
COUNT_RESET自上次复位计数器的值。(The_RESET田野像一个秒表圈计数器:可以测量一定时间间隔内活动期间,而累计数字仍然可用计数MAX_COUNT、等领域。)
MAX_COUNT_RESET最大的计数器值自上次复位。
MIN_COUNT_RESET最小的计数器值自上次复位。
AVG_COUNT_RESET平均自上次复位计数器的值。
TIME_ENABLED去年开始的时间戳
TIME_DISABLED时间戳的最后一站
TIME_ELAPSED时间在秒计数器开始以来。
TIME_RESET时间戳的最后一站
STATUS计数器是否仍在运行(enabled)或停止(禁用
TYPE该项目是否是一个累积计数器,或措施的一些资源的当前值。
COMMENT计数器的描述

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"\G
*************************** 1. row ***************************
           NAME: dml_inserts
      SUBSYSTEM: dml
          COUNT: 3
      MAX_COUNT: 3
      MIN_COUNT: NULL
      AVG_COUNT: 0.046153846153846156
    COUNT_RESET: 3
MAX_COUNT_RESET: 3
MIN_COUNT_RESET: NULL
AVG_COUNT_RESET: NULL
   TIME_ENABLED: 2014-12-04 14:18:28
  TIME_DISABLED: NULL
   TIME_ELAPSED: 65
     TIME_RESET: NULL
         STATUS: enabled
           TYPE: status_counter
        COMMENT: Number of rows inserted

笔记

  • 你必须有PROCESS查询该表的权限

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

24.35.17的information_schema innodb_columns表

这个INNODB_COLUMNS表提供的元数据InnoDB表列

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

可以innodb_columns列表

列名称描述
TABLE_ID一个标识符代表与列相关的表;相同的值INNODB_TABLES.TABLE_ID
NAME在每个表中每一列的名称。这些名字可以大写或小写取决于lower_case_table_names设置有没有特别的系统保留的列名。
POS表中的列的序号位置,从0开始,依次递增。当一列掉,剩余的列重新排序,序列无缝隙。这个POS值为虚拟生成的列的列数和编码序列的列的序号位置。更多信息,见销售时点情报系统在列的描述第24.35.28,“information_schema innodb_virtual表”
MTYPE代表主要类型. A numeric identifier for the column type. 1 =VARCHAR, 2 =烧焦, 3 =FIXBINARY, 4 =二元的, 5 =BLOB, 6 =国际的, 7 =SYS_CHILD, 8 =系统, 9 =FLOAT, 10 =, 11 =DECIMAL, 12 =varmysql, 13 =MYSQL, 14 =几何
PRTYPE这个InnoDB精密型MySQL数据类型,占位的二进制值,编码字符集,并为空性。
LEN列的长度,例如4INT和8bigint。在多字节字符集的字符列,这个长度值是需要一个这样的定义的最大字节长度VARCHAR(N);那是,它可能是2 *N三*N,等等根据不同的字符编码。
HAS_DEFAULT一个布尔值,指示是否添加列,立即使用ALTER TABLE ... ADD COLUMNALGORITHM=INSTANT有一个默认值。所有列添加立即有一个默认值,使这一领域的列是否加入立即指示。
DEFAULT_VALUE初始默认值的列添加立即使用ALTER TABLE ... ADD COLUMNALGORITHM=INSTANT。如果默认值NULL或没有被指定,列报告无效的。一个显式指定的非—NULL默认值是一个内部二进制格式显示。该列的默认值随后的修改不改变报告的值列。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_COLUMNS where TABLE_ID = 71\G
*************************** 1. row ***************************
     TABLE_ID: 71
         NAME: col1
          POS: 0
        MTYPE: 6
       PRTYPE: 1027
          LEN: 4
  HAS_DEFAULT: 0
DEFAULT_VALUE: NULL
*************************** 2. row ***************************
     TABLE_ID: 71
         NAME: col2
          POS: 1
        MTYPE: 2
       PRTYPE: 524542
          LEN: 10
  HAS_DEFAULT: 0
DEFAULT_VALUE: NULL
*************************** 3. row ***************************
     TABLE_ID: 71
         NAME: col3
          POS: 2
        MTYPE: 1
       PRTYPE: 524303
          LEN: 10
  HAS_DEFAULT: 0
DEFAULT_VALUE: NULL

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.18的information_schema innodb_datafiles表

这个INNODB_DATAFILES表提供了数据文件的路径信息InnoDB每个表和一般的表空间文件。

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

笔记

这个INFORMATION_SCHEMA.FILES表元数据的所有报告InnoDB表空间的类型包括每个表的表空间,文件一般表空间,系统表空间,临时表空间,并撤销表空间。

表24.18 innodb_datafiles柱

列名称描述
SPACE表空间ID
PATH表空间的数据文件的路径。如果一个文件表表空间是在MySQL数据目录中创建一个位置,路径值是一个完全合格的路径。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_DATAFILES WHERE SPACE = 57\G
*************************** 1. row ***************************
SPACE: 57
 PATH: ./test/t1.ibd

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.19的information_schema innodb_fields表

这个INNODB_FIELDS表提供了有关的关键列(字段)的元数据InnoDB指标

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.19 innodb_fields柱

列名称描述
INDEX_ID与此相关的关键领域的指标标识符,使用相同的值作为INNODB_INDEXES.INDEX_ID
NAME从表的列的名称,使用相同的值作为INNODB_COLUMNS.NAME
POS在索引的键字段的顺序,从0开始,依次递增。当一列掉,剩余的列重新排序,序列无缝隙。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FIELDS WHERE INDEX_ID = 117\G
*************************** 1. row ***************************
INDEX_ID: 117
    NAME: col1
     POS: 0

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.20的information_schema innodb_foreign表

这个INNODB_FOREIGN表提供的元数据InnoDB外键

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.20 innodb_foreign柱

列名称描述
ID名称(不是数值)的外键索引。在数据库名称,例如,test/products_fk
FOR_NAME的名字子表在这个外键关系
REF_NAME的名字父表在这个外键关系
N_COLS在外键索引的列数
TYPEA collection of bit flags with information about the foreign key column, ORed together. 1 =ON DELETE CASCADE, 2 =在更新设置NULL, 4 =ON UPDATE CASCADE, 8 =在更新设置NULL, 16 =ON DELETE NOACTION, 32 =在更新行动

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN\G
*************************** 1. row ***************************
      ID: test/fk1
FOR_NAME: test/child
REF_NAME: test/parent
  N_COLS: 1
    TYPE: 1

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.21的information_schema innodb_foreign_cols表

这个INNODB_FOREIGN_COLS表提供了有关列的状态信息InnoDB外键

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.21 innodb_foreign_cols柱

列名称描述
ID这个索引键字段关联的外键索引,使用相同的值INNODB_FOREIGN.ID
FOR_COL_NAME相关的子表中的列名称。
REF_COL_NAME对相关列在父表的名称。
POS在国外的关键指标这一关键领域的序号位置,从0开始。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN_COLS WHERE ID = 'test/fk1'\G
*************************** 1. row ***************************
          ID: test/fk1
FOR_COL_NAME: parent_id
REF_COL_NAME: id
         POS: 0

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.22的information_schema innodb_indexes表

这个INNODB_INDEXES表提供的元数据InnoDB指标

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.22 innodb_indexes柱

列名称描述
INDEX_ID一个标识符,每个指标是独特的在所有的数据库实例。
NAME该指数的名字。大多数指标的隐式地创建InnoDB有一致的名字,但不一定是唯一索引的名字。例如,首要对于主键索引,GEN_CLUST_INDEX表示一个主键索引时没有指定,并_输入IDFOR_IND,和参考文献_进来外键约束
TABLE_ID一个标识符代表与索引相关的表;相同的值INNODB_TABLES.TABLE_ID
TYPEA numeric value derived from bit-level information that identifies the index type. 0 = non-unique secondary index; 1 = automatically generated clustered index (GEN_CLUST_INDEX); 2 = unique non-clustered index; 3 = clustered index; 32 = full-text index; 64 = spatial index; 128 = secondary index on a虚拟生成的列
N_FIELDS在索引键的列数。对于GEN_CLUST_INDEX指标,这个值是0,因为指数是使用人工的价值,而不是一个真正的表列。
PAGE_NO该索引B树的根页号。全文索引的PAGE_NO场未设置为1(_空文件)因为全文索引放在几个树(辅助表)。
SPACE在索引所在的表空间标识符。0指InnoDB系统片。任何其他的数字代表一个表创建文件表一个单独的模式.ibd文件此标识符保持不变后TRUNCATE TABLE声明。因为对于一个表的所有索引表驻留在相同的表空间中,这个值不一定是唯一。
MERGE_THRESHOLD合并索引页的阈值。如果在一个索引页的数据量低于merge_threshold值时删除一行或一行后缩短了更新操作,InnoDB试图索引页与相邻的索引页合并。默认值是50%.。有关更多信息,参见第15.6.12,“配置合并阈值的索引页”

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_INDEXES WHERE TABLE_ID = 34\G
*************************** 1. row ***************************
       INDEX_ID: 39
           NAME: GEN_CLUST_INDEX
       TABLE_ID: 34
           TYPE: 1
       N_FIELDS: 0
        PAGE_NO: 3
          SPACE: 23
MERGE_THRESHOLD: 50
*************************** 2. row ***************************
       INDEX_ID: 40
           NAME: i1
       TABLE_ID: 34
           TYPE: 0
       N_FIELDS: 1
        PAGE_NO: 4
          SPACE: 23
MERGE_THRESHOLD: 50

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.23的information_schema innodb_session_temp_tablespaces表

这个INNODB_SESSION_TEMP_TABLESPACES表提供了元数据的会话的临时表空间用于内部和用户创建的临时表空间。(介绍MySQL 8.0.13)

表24.23 innodb_session_temp_tablespaces柱

列名称描述
ID会话ID
SPACE空间ID
PATH表空间的数据文件的路径。一个会话的临时表空间有.ibt文件扩展名
SIZEThe size of the Tabesaces,in Bytes .
STATEthe State of the表空间。ACTIVEindicate that the stating is currently used by a session .无效表明该表空间是可用的会话的临时表空间的池。
PURPOSE表空间的目的INTRINSIC表明该表空间是用于优化内部临时表。用户表明该表用于用户创建临时表。NONE表明该表空间是在不使用。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SESSION_TEMP_TABLESPACES;
+----+------------+----------------------------+-------+----------+-----------+
| ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
+----+------------+----------------------------+-------+----------+-----------+
|  8 | 4294566162 | ./#innodb_temp/temp_10.ibt | 81920 | ACTIVE   | INTRINSIC |
|  8 | 4294566161 | ./#innodb_temp/temp_9.ibt  | 98304 | ACTIVE   | USER      |
|  0 | 4294566153 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566154 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566155 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566156 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566157 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566158 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566159 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
|  0 | 4294566160 | ./#innodb_temp/temp_8.ibt  | 81920 | INACTIVE | NONE      |
+----+------------+----------------------------+-------+----------+-----------+

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.24的information_schema innodb_tables表

这个INNODB_TABLES表提供的元数据InnoDB

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.24 innodb_tables柱

列名称描述
TABLE_ID每一个标识符InnoDB表是独一无二的,在实例中的所有数据库。
NAME表的名称。在适当的数据库名称,例如test/t1。数据库和表的名字都在相同的情况下,他们最初的定义,可能影响lower_case_table_names设置
FLAG位数据表格式和存储特性包括行格式,压缩页面的大小(如果适用),以及是否DATA DIRECTORY条款使用CREATE TABLEALTER TABLE
N_COLS表中的列数。报告的数字包括三个隐藏的列是由InnoDB_分贝_ ROW IDDB_TRX_ID,和_辊_ PTR分贝)。报道还包括数虚拟生成的列目前,如果
SPACE在表所在的表空间标识符。意味着为InnoDB系统片。任何其他的数字代表一个文件表表空间或一般的表空间。此标识符保持不变后TRUNCATE TABLE声明。每个表的表空间文件,该标识符是实例中的所有数据库表的独特。
ROW_FORMAT表的行格式(紧凑,多余的,动态的,或压缩)。
ZIP_PAGE_SIZE压缩页面大小。只适用于表使用行压缩格式。
SPACE_TYPE该类型的表空间,表。可能的值包括SystemSYSTEM表空间,综合For General Tableaces,andSingle每个表的表空间文件。表分为系统表空间使用CREATE TABLEALTER TABLETABLESPACE=innodb_system有一个General_型空间。有关更多信息,参见CREATE TABLESPACE
INSTANT_COLS列的表中添加列数第一次使用之前ALTER TABLE ... ADD COLUMNALGORITHM=INSTANT

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLES WHERE TABLE_ID = 214\G
*************************** 1. row ***************************
     TABLE_ID: 214
         NAME: test/t1
         FLAG: 129
       N_COLS: 4
        SPACE: 233
   ROW_FORMAT: Compact
ZIP_PAGE_SIZE: 0
   SPACE_TYPE: General
 INSTANT_COLS: 0

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

解释innodb_tables.flag列值

这个INNODB_TABLES.FLAG列提供比特级信息表的格式和存储特性。你可以解释标志由相应的十进制数值,如下表所列的值加在一起。

解释innodb_tables旗列数据表24.25比特位的值

点的位置描述十进制数值
设置此位如果行格式不REDUNDANT。换句话说,它是集如果行格式粉盒DYNAMIC压缩的
  • 0—REDUNDANT

  • 1—COMPACT动态COMPRESSED

1-4这四位含有少量代表表压缩页面的大小。这个INNODB_TABLES.ZIP_PAGE_SIZE现场还报告压缩页面的大小,如适用。
  • 0不压缩

  • 2 - 1024字节压缩页面的大小

  • 4 - 2048字节压缩页面的大小

  • 6 - 4096字节压缩页面的大小

  • 8- 8192字节压缩页面的大小

  • 10- 16384字节压缩页面的大小

设置此位如果行格式DYNAMIC压缩的
  • 0—REDUNDANT粉盒

  • 32—DYNAMIC压缩的

设置此位若DATA DIRECTORY选择是用的CREATE TABLEALTER TABLE。该位设置为每个表的表空间,位于非默认数据目录的目录文件(datadir
  • 0不是一个远程文件的每个表的表空间

  • 64远程文件的每个表的表空间

设置此位如果表被分配到一个共享表空间(无论是一般的表空间或SYSTEM)使用CREATE TABLEALTER TABLETABLESPACE=tablespace_name选项
  • 0台位于默认位置取决于的价值innodb_file_per_table

  • 128表中明确的分配到一个共享的表空间。


在下面,表t1使用ROW_FORMAT=DYNAMIC有一个FLAG值33。基于信息上表中,我们可以看到,0位将被设置为1,和5位的位置会有一个表设置为32动态行格式。这些价值观总计达一FLAG值33

MySQL的>USE test;数据库changedmysql >CREATE TABLE t1 (c1 int) ROW_FORMAT=DYNAMIC;查询行,0行受影响(0.02秒)MySQL >SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLES WHERE NAME LIKE 'test/t1'\G*************************** 1。行*************************** table_id:89名称:测试/ T1标志:33 n_cols:4空间:75 row_format:dynamiczip_page_size:0 instant_cols:01行集(0秒)

24.35.25的information_schema innodb_tablespaces表

这个INNODB_TABLESPACES表提供的元数据InnoDB文件系统和通用电子表格。

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

笔记

这个INFORMATION_SCHEMA.FILES表元数据的所有报告InnoDB表空间的类型包括每个表的表空间,文件一般表空间,系统表空间,临时表空间,并撤销表空间。

表24.26 innodb_tablespaces柱

列名称描述
SPACE表空间ID
NAME名称的数据库和表
FLAG位数据表格式和存储特性。
ROW_FORMAT表行格式(紧凑的或多余的,动态的,或压缩)。在这一领域的数据是从表标志信息驻留在解释IBD文件
PAGE_SIZE页面大小的表空间。在这一领域的数据是从表标志信息驻留在解释IBD文件
ZIP_PAGE_SIZE表空间压缩页面大小。在这一领域的数据是从表标志信息驻留在解释IBD文件
SPACE_TYPE表空间的类型。可能的值包括General一般表空间单身每个表的表空间文件,和SystemFor the System Tabesace .
FS_BLOCK_SIZE文件系统块的大小,这是用于冲孔单元尺寸。本栏目中加入的介绍InnoDB透明页压缩功能特色
FILE_SIZE该文件的大小,它代表了文件的最大大小,压缩。本栏目中加入的介绍InnoDB透明页压缩功能特色
ALLOCATED_SIZE该文件的实际大小,这是量的空间分配磁盘。本栏目中加入的介绍InnoDB透明页压缩功能特色
SERVER_VERSION定义创建的表空间的mysql版本的MySQL版本,或将表空间是进口的,或者最后一个主要的MySQL版本升级版。该值是不变的一个版本系列的升级,如从MySQL 8的升级。x这是8y。这是什么?创造标记或证实Marke for the staff .
SPACE_VERSION定义表空间的版本,用于跟踪的表格式的变化。
ENCRYPTION指示是否使用加密。(介绍MySQL 8.0.13)

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE = 26\G
*************************** 1. row ***************************
         SPACE: 26
          NAME: test/t1
          FLAG: 0
    ROW_FORMAT: Compact or Redundant
     PAGE_SIZE: 16384
 ZIP_PAGE_SIZE: 0
    SPACE_TYPE: Single
 FS_BLOCK_SIZE: 4096
     FILE_SIZE: 98304
ALLOCATED_SIZE: 65536
SERVER_VERSION: 8.0.4
 SPACE_VERSION: 1
    ENCRYPTION: N

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

  • 没有办法确定从这个标志整数如果表行格式是多余的或紧凑。因此,对于可能的值ROW_FORMAT紧凑型或冗余压缩的,或动态

解释innodb_tablespaces.flag列值

这个INNODB_TABLESPACES.FLAG列提供位信息表格式和存储特性。

你可以把表空间FLAG由相应的十进制数值,如下表所列的值加在一起。

解释innodb_tablespaces旗列数据表24.27比特位的值

点的位置描述十进制数值
设置此位如果在表表的行格式DYNAMIC压缩的。如果没有设置该位,在表表的行格式可以是REDUNDANT粉盒。如果是每表表空间文件,可以查询INNODB_TABLES要确定如果行格式冗余COMPACT
  • 0—REDUNDANT粉盒

  • 1—DYNAMIC压缩的

1-4这四位含有少量表示压缩页面的大小(的KEY_BLOCK_SIZE物理块的大小
  • 0不压缩

  • 2 - 1024字节压缩页面的大小

  • 4 - 2048字节压缩页面的大小

  • 6 - 4096字节压缩页面的大小

  • 8- 8192字节压缩页面的大小

  • 10- 16384字节压缩页面的大小

  • 12 - 32768字节压缩页面的大小

  • 14 - 65536字节压缩页面的大小

该位设置为每个表的表空间文件如果表的行格式DYNAMIC压缩的。一般表不包含压缩表将前6位设置为零,包括这一点,将表空间拥有REDUNDANT粉盒表但实际上,一般表空间可以包含任意组合REDUNDANT粉盒DYNAMIC表对于一般的表空间的更多信息,参见CREATE TABLESPACE
  • 0—REDUNDANT粉盒

  • 32—DYNAMIC压缩的

6-9这四位含有少量表示压缩页面大小(逻辑页面大小的表空间)。设置为零,如果逻辑页面大小是原来的InnoDB16K的默认页面大小。
  • 192 - 4096字节的逻辑/压缩页面大小

  • 256 -8192字节的逻辑/压缩页面大小

  • 0 - 16384字节的逻辑/压缩页面大小

  • 384 - 32768字节的逻辑/压缩页面大小

  • 448 - 65536字节的逻辑/压缩页面大小

设置此位若DATA DIRECTORY选择是用的CREATE TABLEALTER TABLE。该位设置为每个表的表空间,位于非默认数据目录的目录文件(datadir
  • 0不是一个远程文件的每个表的表空间

  • 1024远程文件的每个表的表空间

十一设置此位如果表空间是一个共享的一般表空间创建使用CREATE TABLESPACE
  • 0台位于默认位置取决于的价值innodb_file_per_table设置

  • 2048桌子被显式地指定一个共享表空间。

十二设置此位如果表空间是专门为临时表。只有预定ibtmp1表空间使用这个标志
  • 0本表不包含临时表,所以不重新启动时。

  • 4096表空间包含临时表和重新启动。


在下面的例子中,表t1创建innodb_file_per_table=ON,创建表T1在自己的书桌上。当争吵INNODB_TABLESPACES,我们看到,有一个表空间标志价值33。如何确定这个值到达,审查的位值与上表中所述。比特0因为桌子有一个价值1t1使用动态行格式。5位因为表空间文件每表表空间使用具有值32DYNAMIC行格式。0位是因为6-9innodb_page_size设置为默认值16k。另一位值是不适用的,因此设置为0。值为0位和5位,总计达一标志值33

mysql> USE test;
Database changed

mysql> SHOW VARIABLES LIKE 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+

mysql> SHOW VARIABLES LIKE 'innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+

mysql> CREATE TABLE t1 (c1 int) ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.02 sec)

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME LIKE 'test/t1'\G
*************************** 1. row ***************************
        SPACE: 75
         NAME: test/t1
         FLAG: 33
   ROW_FORMAT: Dynamic
    PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
1 row in set (0.00 sec)

24.35.26的information_schema innodb_tablespaces_brief表

这个INNODB_TABLESPACES_BRIEF表提供了空间ID、名称、路径、国旗、和空间类型的元数据文件表,一般,和系统表空间。

INNODB_TABLESPACES提供相同的元数据,但更多的慢慢因为表格中提供的其他数据,如fs_block_sizeFILE_SIZE,和allocated_size,必须动态加载

空间和路径元数据也由INNODB_DATAFILES

本次innodb_tablespaces_brief列表

列名称描述
SPACE表空间ID
NAME名称的数据库和表
PATH表空间的数据文件的路径。如果一个文件表表空间是在MySQL数据目录中创建一个位置,路径值是一个完全合格的路径。
FLAG位数据表格式和存储特性。
SPACE_TYPE表空间的类型。可能的值包括GeneralInnoDBTableaces将军,SingleInnoDB每个表的表空间文件,和System对于InnoDB系统表空间

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF WHERE SPACE = 7;
+-------+---------+---------------+-------+------------+
| SPACE | NAME    | PATH          | FLAG  | SPACE_TYPE |
+-------+---------+---------------+-------+------------+
| 7     | test/t1 | ./test/t1.ibd | 16417 | Single     |
+-------+---------+---------------+-------+------------+

笔记

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.27的information_schema innodb_tablestats观

这个INNODB_TABLESTATS提供了一个从低级状态信息InnoDB表这个数据是由MySQL优化器计算指数使用查询时使用InnoDB表这个信息是从内存中的数据结构,而不是对应于存储在磁盘上的数据。没有相应的内部InnoDB系统表

InnoDB表中表示这个观点,如果他们已自上次重新启动服务器打开,而不是年龄的表缓存。表,持续的信息是可以永远在这一观点的代表。

统计表只更新DELETEUPDATE操作修改索引列。统计是不操作,只能修改非索引列的更新。

有关使用信息和例子,看第15.14.3,“InnoDB information_schema架构对象表”

表24.29 innodb_tablestats柱

列名称描述
TABLE_ID一个标识符表示的统计数据表,使用相同的值INNODB_TABLES.TABLE_ID
NAME该表的名称,使用相同的值INNODB_TABLES.NAME
STATS_INITIALIZED的价值Initialized如果数据已经收集,未初始化如果不是
NUM_ROWS目前的估计数的表中的行。每个DML操作后更新。可以不精确,如果未提交的事务被插入或删除的表。
CLUST_INDEX_SIZE磁盘上的聚集索引存储页数,持有InnoDB在主键顺序表的数据。这个值可能为空如果没有收集统计数据,但表。
OTHER_INDEX_SIZE在那家商店所有的次要指标为表磁盘页数。这个值可能为空如果没有收集统计数据,但表。
MODIFIED_COUNTER行的DML操作修改的数量,如INSERT更新DELETE,并从外键级联操作。本栏目每次复位重新计算统计表
AUTOINC下一个数字发行的任何自动增量的基础操作。的速度AUTOINC值的变化取决于有多少次自动增量的数字已被要求多少数量给予每个请求。
REF_COUNT当该计数器达到零,表的元数据可以逐出表缓存。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
         TABLE_ID: 71
             NAME: test/t1
STATS_INITIALIZED: Initialized
         NUM_ROWS: 1
 CLUST_INDEX_SIZE: 1
 OTHER_INDEX_SIZE: 0
 MODIFIED_COUNTER: 1
          AUTOINC: 0
        REF_COUNT: 1

笔记

  • 此表为专家级的性能监控主要是有用的,或在开发性能相关的扩展的MySQL。

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.28的information_schema innodb_virtual表

这个INNODB_VIRTUAL表提供的元数据InnoDB虚拟生成的列柱上虚拟生成的列的基础。

在出现一排INNODB_VIRTUAL表的每一列上的一个虚拟生成的列的基础。

表24.30 innodb_virtual柱

列名称描述
TABLE_ID一个标识符代表虚拟列关联的表;相同的值INNODB_TABLES.TABLE_ID
POS的位置值虚拟生成的列。价值大是因为它编码列序列号和序号位置。用于计算价值的公式使用位操作。公式((nth virtual generated column for the InnoDB instance + 1) << 16) + the ordinal position of the virtual generated column。例如,如果第一个虚拟生成的列在InnoDBinstance is the third column of the table, the formula is (0 + 1) << 16) + 2. The first virtual generated column in theInnoDB实例总是数0。如表第三列的序号位置的虚拟生成的列2。序号位置数从0。
BASE_POS序号位置的列在其虚拟生成的列的基础。

例子

mysql> CREATE TABLE `t1` (
         `a` int(11) DEFAULT NULL,
         `b` int(11) DEFAULT NULL,
         `c` int(11) GENERATED ALWAYS AS (a+b) VIRTUAL,
         `h` varchar(10) DEFAULT NULL
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_VIRTUAL
       WHERE TABLE_ID IN (SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_TABLES WHERE NAME LIKE "test/t1");
+----------+-------+----------+
| TABLE_ID | POS   | BASE_POS |
+----------+-------+----------+
|       98 | 65538 |        0 |
|       98 | 65538 |        1 |
+----------+-------+----------+

笔记

  • 如果一个常量的值赋给虚拟生成的列,如下面的例子,为列一项没有出现在INNODB_VIRTUAL表一个入口出现,虚拟生成的列必须有一个基柱。

    MySQL的&#62;CREATE TABLE `t1` (`a` int(11) DEFAULT NULL,`b` int(11) DEFAULT NULL,`c` int(11) GENERATED ALWAYS AS (5) VIRTUAL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    然而,对于这样一个列的元数据中出现INNODB_COLUMNS

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.29的information_schema innodb_temp_table_info表

INNODB_TEMP_TABLE_INFO提供有关用户的信息创建InnoDB临时表是目前活跃在InnoDB实例。它没有提供信息有关的内部InnoDB临时表,查询优化器使用。这个INNODB_TEMP_TABLE_INFO表被创建时,它是第一个受到质疑,只存在于记忆。它不保存到磁盘。

使用信息和例子,看第15.14.7,“InnoDB information_schema临时表信息表”

表24.31 innodb_temp_table_info柱

列名称描述
TABLE_ID活动的临时表的表的ID。
NAME活动的临时表的名称
N_COLS临时表中的列数。数总是包括三个隐藏的列创建的InnoDB(DB _ _ ROW ID,DB和DB ID _ _ TRX,_作用_ PTR)。
SPACE表空间标识符(数值)在临时表所在的表空间。全部InnoDB临时表驻留在一个共享的临时表空间。对于共享临时表空间的数据文件是指由innodb_temp_data_file_path配置选项。默认情况下,有共享临时表空间名为单个数据文件ibtmp1,它位于data目录这个空间ID为临时表空间始终是一个非零的值,是动态生成的服务器上重新启动。

例子

mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
*************************** 1. row ***************************
TABLE_ID: 97
    NAME: #sql8c88_43_0
  N_COLS: 4
   SPACE: 76
1 row in set (0.00 sec)

笔记

  • 此表为专家级的监控是非常有用的。

  • 使用DESCRIBESHOW COLUMNS查看更多的信息关于栏目本表包括数据类型和默认值。

  • 你必须有PROCESS查询该表的权限

24.35.30的information_schema innodb_trx表

这个INNODB_TRX表包含每个交易信息(包括只读事务)正在执行的内部InnoDB,包括交易是否正在等待锁,交易开始时,和SQL语句的事务的执行,如果任何。

差异innodb_trx列表

列名称描述
TRX_ID独特的交易编号,内部InnoDB。这些ID不能是只读和非锁定交易了。看到第8.5.3,“优化InnoDB只读事务”详情
TRX_WEIGHT一个事务的权重,反映(但不一定准确计数)行改变数和行数的交易锁定。为了解决僵局,InnoDB选取权值最小的交易为受害者回滚。改变了非事务表的交易被认为是比别人,无论改变的数量和锁定的行。
TRX_STATE交易执行状态。允许值RUNNING锁等待ROLLING BACK,和
TRX_STARTED交易开始时间
TRX_REQUESTED_LOCK_IDID锁的交易目前正在等待,如果TRX_STATE锁等待另有;NULL。获取有关锁,加入此列的engine_lock_id的性能架构列data_locks
TRX_WAIT_STARTED当交易开始等待这个锁,如果TRX_STATE锁等待另有;NULL
TRX_MYSQL_THREAD_IDMySQL线程ID来获取有关线索,加入此列的ID列的PROCESSLIST表,但见第15.14.2.3,“毅力和InnoDB事务一致性和锁定信息”
TRX_QUERYSQL语句被执行的交易。
TRX_OPERATION_STATE交易的操作,如果任何;否则NULL
TRX_TABLES_IN_USEInnoDB表用在处理这个事务的当前的SQL语句。
TRX_TABLES_LOCKEDInnoDB表当前的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声明不使用更新LOCK IN SHARED MODE条款,并执行autocommit启用这样的交易将只包含这一声明。当这列trx_is_read_only都是1,InnoDB优化交易降低交易变化表数据相关的开销。

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G
*************************** 1. row ***************************
                    trx_id: 1510
                 trx_state: RUNNING
               trx_started: 2014-11-19 13:24:40
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 586739
       trx_mysql_thread_id: 2
                 trx_query: DELETE FROM employees.salaries WHERE salary > 65000
       trx_operation_state: updating or deleting
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 3003
     trx_lock_memory_bytes: 450768
           trx_rows_locked: 1407513
         trx_rows_modified: 583736
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
 trx_adaptive_hash_latched: 0
 trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0

笔记

24.36 information_schema线程池表

以下部分描述了theINFORMATION_SCHEMA用线程池插件相关的表。他们提供了线程池的操作信息:

这些表中的行表示快照时间。在的情况下TP_THREAD_STATE一个线程组中的所有行,包括一个时间点的快照。因此,MySQL服务器持有该线程组的互斥体而产生的快照。但它不会在同一时间所有的线程组持有互斥锁,防止告TP_THREAD_STATEfrom the MySQL服务器全部阻塞。

线程池INFORMATION_SCHEMA表是由单独的插件实现,是否加载一个可以独立于其他的决定(见第5.6.3.2,“线程池安装”)。然而,所有的表的内容取决于线程池插件启用。如果一个表插件启用但线程池插件没有,表变得可见和可访问,但将是空的。

24.36.1的information_schema tp_thread_group_state表

这个TP_THREAD_GROUP_STATE表的线程池中的线程组中每一行。每一行提供了一组关于当前状态信息。

这个TP_THREAD_GROUP_STATE这些列的表:

  • TP_GROUP_ID

    这是关键的表中的一个独特的线程组。

  • CONSUMER THREADS

    消费者线程数。至多有一个线程开始执行如果活动线程成为停滞或受阻。

  • RESERVE_THREADS

    在保留状态的线程数。这意味着,他们才会有需要唤醒一个新线程并没有消费者线程开始。这是大多数线程结束时,线程组创造了比正常运行时需要更多的线程。往往一个线程组需要一段额外的线程,则不需要再一会儿。在这种情况下,他们进入状态,直到再次需要保留。他们采取了一些额外的内存资源,但没有额外的计算资源。

  • CONNECT_THREAD_COUNT

    这是处理或等待过程连接的初始化和验证线程数。可以有最多四个连接线程,每线程组;这些线程终止闲置一段时间后。

  • CONNECTION_COUNT

    使用该线程组的连接数。

  • QUEUED_QUERIES

    语句在高优先级队列等待人数。

  • QUEUED_TRANSACTIONS

    语句在低优先级队列等待人数。这些都是没有开始的交易最初的陈述,所以他们也代表队列中的交易。

  • STALL_LIMIT

    的价值thread_pool_stall_limit该线程组的系统变量。这是所有线程组相同的值。

  • PRIO_KICKUP_TIMER

    的价值thread_pool_prio_kickup_timer该线程组的系统变量。这是所有线程组相同的值。

  • ALGORITHM

    的价值thread_pool_algorithm该线程组的系统变量。这是所有线程组相同的值。

  • THREAD_COUNT

    线程数开始线程池中的线程组的这部分。

  • ACTIVE_THREAD_COUNT

    活动线程执行的语句数。

  • STALLED_THREAD_COUNT

    停顿的陈述中的线程组数。停滞的语句可以执行,但从线程池的角度来看这是停滞不前,毫无进展。长期的声明很快结束了在这一范畴。

  • WAITING_THREAD_NUMBER

    如果有一个线程在处理线程组报表查询,指定线程数该线程组内。这是可能的,该线程可以执行语句。

  • OLDEST_QUEUED

    以毫秒为单位最早排队的声明已经等待执行多久。

  • MAX_THREAD_IDS_IN_GROUP

    组中的最大线程的线程ID。这是一样的MAX(TP_THREAD_NUMBER)对于线程时,选择从TP_THREAD_GROUP_STATE表就是这两个查询是等效的:

    选择tp_group_id,max_thread_ids_in_groupfrom tp_thread_group_state;选择tp_group_id,max(tp_thread_number)从tp_thread_state组tp_group_id;

24.36.2的information_schema tp_thread_group_stats表

这个TP_THREAD_GROUP_STATS表格报表统计每线程组。在每一组行。

这个TP_THREAD_GROUP_STATS这些列的表:

  • TP_GROUP_ID

    这是关键的表中的一个独特的线程组。

  • CONNECTIONS_STARTED

    the number of Connections开始。

  • CONNECTIONS_CLOSED

    连接的数量关

  • QUERIES_EXECUTED

    语句的执行次数。这个数字是递增的语句开始执行时,没有完成时。

  • QUERIES_QUEUED

    收到的报表进行排队执行数。这不算报表,线程组能够开始执行立即无需排队,可描述的条件下发生的第5.6.3.3,“线程池操作”

  • THREADS_STARTED

    启动线程数

  • PRIO_KICKUPS

    这是从低优先级队列移动到基于价值的高优先级队列的语句数thread_pool_prio_kickup_timer系统变量。如果这个数量迅速增加,考虑增加该变量的值。一个快速增长的反击手段,优先权制度是不从交易出发太早。为InnoDB这最有可能意味着性能恶化,由于太多的并发事务..

  • STALLED_QUERIES_EXECUTED

    这已成为定义为停顿由于一时间比的值不再执行的语句数thread_pool_stall_limit系统变量

  • BECOME_CONSUMER_THREAD

    次线程数已分配消费者线程的作用。

  • BECOME_RESERVE_THREAD

    次线程数已分配储备线的作用。

  • BECOME_WAITING_THREAD

    次线程数被指派服务员螺纹的作用。当报表进行排队,这经常发生,甚至在正常运行,因此快速增加这个值是正常的情况下,高负载的系统,报表是排队。

  • WAKE_THREAD_STALL_CHECKER

    次失速检查螺纹决定唤醒或创建一个线程可能会处理一些报表或照顾服务员角色数量的线程。

  • SLEEP_WAITS

    THD_WAIT_SLEEP等待。这些发生在线程去睡觉;例如,通过调用SLEEP()功能

  • DISK_IO_WAITS

    THD_WAIT_DISKIO等待。这些发生在线程执行磁盘I/O,可能打不到文件系统缓存。这样的等待发生在缓冲池中读取和写入数据到磁盘,不能正常读写文件。

  • ROW_LOCK_WAITS

    THD_WAIT_ROW_LOCK等待另一个事务释放行锁。

  • GLOBAL_LOCK_WAITS

    THD_WAIT_GLOBAL_LOCK等待一个全局锁被释放。

  • META_DATA_LOCK_WAITS

    THD_WAIT_META_DATA_LOCK等待一个元数据锁被释放。

  • TABLE_LOCK_WAITS

    THD_WAIT_TABLE_LOCK等待一个表被解锁,声明需要访问。

  • USER_LOCK_WAITS

    THD_WAIT_USER_LOCK等待一个特殊的锁由用户线程构造。

  • BINLOG_WAITS

    THD_WAIT_BINLOG_WAITS等待成为自由的二进制日志。

  • GROUP_COMMIT_WAITS

    THD_WAIT_GROUP_COMMIT等待。这发生在当一个集团承诺必须等待完成他们的事务的一部分的其他方。

  • FSYNC_WAITS

    THD_WAIT_SYNC等待一个文件同步操作。

24.36.3的information_schema tp_thread_state表

这个TP_THREAD_STATE表每用线程池来处理连接线一行。

这个TP_THREAD_STATE这些列的表:

  • TP_GROUP_ID

    线程组ID

  • TP_THREAD_NUMBER

    该线程组中的线程的ID。TP_GROUP_IDtp_thread_number一起提供关键的表中的一个独特的。

  • PROCESS_COUNT

    10ms间隔中使用这个线程正在执行的语句。0意味着没有执行语句,1意味着它是在第一个10ms,等等。

  • WAIT_TYPE

    类型的线程同步等NULL意味着线程不阻塞。否则,线程被调用thd_wait_begin()价值的特异性。的xxx_WAIT列的TP_THREAD_GROUP_STATS表累加计数每个等待类型。

    这个WAIT_TYPE值是一个字符串,描述了等待的类型,如下表所示。

    表24.33 wait_type值

    等待类型意义
    THD_WAIT_SLEEP等待睡眠
    THD_WAIT_DISKIO等待磁盘IO
    THD_WAIT_ROW_LOCK等待行锁
    THD_WAIT_GLOBAL_LOCK等待全球锁
    THD_WAIT_META_DATA_LOCK等待元数据锁
    THD_WAIT_TABLE_LOCK等待表锁
    THD_WAIT_USER_LOCK等待用户锁定
    THD_WAIT_BINLOG等待binlog
    THD_WAIT_GROUP_COMMIT等待组提交
    THD_WAIT_SYNC等待fsync

24.37 information_schema连接控制表

以下部分描述了theINFORMATION_SCHEMA与表连接控制插件

24.37.1的information_schema connection_control_failed_login_attempts表

此表提供有关当前数量的连续信息失败的连接尝试每个客户端的用户/主机组合。

CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS这些列有:

  • USERHOST

    一个客户已经失败的连接尝试的用户/主机的结合,在'user_name'@'host_name'格式

  • FAILED_ATTEMPTS

    目前一些连续失败的连接尝试USERHOST价值。这包括所有失败的尝试,不管他们是否被推迟。的一些尝试,服务器响应添加延迟之间的差异failed_attempts价值和connection_control_failed_connections_threshold系统变量的值

笔记

  • 这个CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件必须为该表可激活,和连接控制插件必须激活或表的内容永远是空的。看到第6.5.2,“连接控制插件”

  • 表中只包含有一个或多个连续的失败的连接尝试不成功的尝试客户后续行。当一个客户端连接成功,其失败的连接计数清零和服务器删除任何行对应的客户端。

  • 在分配一个值connection_control_failed_connections_threshold在运行时系统变量重置所有累积的失败连接计数器为零,使表成为空。

24.38扩展显示报表

一些扩展SHOW报表陪实施information_schema

  • SHOW可用于获取有关信息的结构information_schema本身

  • 几个SHOW在接受声明哪里条款,提供在指定要显示的行更多的灵活性。

INFORMATION_SCHEMA是一个信息数据库,所以它的名字是包含在输出SHOW DATABASES。同样,SHOW TABLES可以使用information_schema获取列表的表:

mysql> SHOW TABLES FROM INFORMATION_SCHEMA;
+---------------------------------------+
| Tables_in_INFORMATION_SCHEMA          |
+---------------------------------------+
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |
| COLUMN_PRIVILEGES                     |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| KEY_COLUMN_USAGE                      |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| STATISTICS                            |
| TABLES                                |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| USER_PRIVILEGES                       |
| VIEWS                                 |
+---------------------------------------+

SHOW COLUMNSDESCRIBE可以在个别显示的列信息information_schema

SHOW报表,接受LIKE条款限制行显示也允许哪里子句指定更多的一般条件,选定的行必须满足:

SHOW CHARACTER SET
SHOW COLLATION
SHOW COLUMNS
SHOW DATABASES
SHOW FUNCTION STATUS
SHOW INDEX
SHOW OPEN TABLES
SHOW PROCEDURE STATUS
SHOW STATUS
SHOW TABLE STATUS
SHOW TABLES
SHOW TRIGGERS
SHOW VARIABLES

这个WHERE条款,如果存在,是对其所显示的列名称SHOW声明。例如,在SHOW CHARACTER SET说明产生这些输出列:

MySQL的&#62;SHOW CHARACTER SET;---------- -----------------------------意图——| |默认字符集描述| collation | maxlen | ---------- -----------------------------意图——| BIG5 | BIG5传统华人华侨| BIG5 _ _ CI | 2 | | dec8 | DEC西部欧洲| dec8 _瑞典_ CI | 1 | | cp850 | DOS西欧洲| cp850 _ _将军祠| 1 | | hp8 |惠普欧洲西| hp8 _英语词_ | 1 | | koi8r | koi8-r列尔科姆网俄罗斯| koi8r _ _将军祠| 1 | | latin1 | cp1252西欧洲| latin1 _瑞典_ CI | 1 | | latin2 | ISO 8859-1 2中欧| latin2 _ _将军祠| 1 |…………………

使用WHERE条款SHOW CHARACTER SET,你是指那些列名。例如,下面的语句显示关于字符集的默认排序规则包含字符串“日本”

mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';
+---------+---------------------------+---------------------+--------+
| Charset | Description               | Default collation   | Maxlen |
+---------+---------------------------+---------------------+--------+
| ujis    | EUC-JP Japanese           | ujis_japanese_ci    |      3 |
| sjis    | Shift-JIS Japanese        | sjis_japanese_ci    |      2 |
| cp932   | SJIS for Windows Japanese | cp932_japanese_ci   |      2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |      3 |
+---------+---------------------------+---------------------+--------+

这一声明显示多字节字符集:

mysql> SHOW CHARACTER SET WHERE Maxlen > 1;
+---------+---------------------------+---------------------+--------+
| Charset | Description               | Default collation   | Maxlen |
+---------+---------------------------+---------------------+--------+
| big5    | Big5 Traditional Chinese  | big5_chinese_ci     |      2 |
| ujis    | EUC-JP Japanese           | ujis_japanese_ci    |      3 |
| sjis    | Shift-JIS Japanese        | sjis_japanese_ci    |      2 |
| euckr   | EUC-KR Korean             | euckr_korean_ci     |      2 |
| gb2312  | GB2312 Simplified Chinese | gb2312_chinese_ci   |      2 |
| gbk     | GBK Simplified Chinese    | gbk_chinese_ci      |      2 |
| utf8    | gb3212 Unicode             | utf8_general_ci     |      3 |
| ucs2    | UCS-2 Unicode             | ucs2_general_ci     |      2 |
| cp932   | SJIS for Windows Japanese | cp932_japanese_ci   |      2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |      3 |
+---------+---------------------------+---------------------+--------+