zoukankan      html  css  js  c++  java
  • MySQL 5.7 INFORMATION_SCHEMA 详解

    refman mysql 5.7

    INFORMATION_SCHEMA提供了对数据库元数据的访问,MySQL服务器信息,如数据库或表的名称,列的数据类型,访问权限等。 有时也把这些信息叫做数据字典或系统目录。

    每个数据库实例都会有一个 INFORMATION_SCHEMA 库,保存的是本实例下其他所有库的信息。INFORMATION_SCHEMA数据库包含多个只读表。 它们实际上是视图,而不是基础表,所以没有与它们关联的文件,并且你不能在它们上设置触发器。此外,数据库目录下也没有该库的目录。

    虽然可以使用USE语句将INFORMATION_SCHEMA选择为缺省数据库,但只能读取表的内容,不能对它们执行INSERT,UPDATE或DELETE操作。

    每个MySQL用户都可以访问 INFORMATION_SCHEMA,但是只能看到自己有权限的那些行。

    CHARACTER_SETS

    • 字符集:对 Unicode 的一套编码。​
    • collation:用于指定数据集如何排序,以及字符串的比对规则。

    CHARACTER_SETS表提供了有关可用字符集的信息。

    > desc CHARACTER_SETS;
    +----------------------+-------------+------+-----+---------+-------+
    | Field                | Type        | Null | Key | Default | Extra |
    +----------------------+-------------+------+-----+---------+-------+
    | CHARACTER_SET_NAME   | varchar(32) | NO   |     |         |       |
    | DEFAULT_COLLATE_NAME | varchar(32) | NO   |     |         |       |
    | DESCRIPTION          | varchar(60) | NO   |     |         |       |
    | MAXLEN               | bigint(3)   | NO   |     | 0       |       |
    +----------------------+-------------+------+-----+---------+-------+
    
    > select * from CHARACTER_SETS where CHARACTER_SET_NAME like 'utf8%';
    +--------------------+----------------------+---------------+--------+
    | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION   | MAXLEN |
    +--------------------+----------------------+---------------+--------+
    | utf8               | utf8_general_ci      | UTF-8 Unicode |      3 |
    | utf8mb4            | utf8mb4_general_ci   | UTF-8 Unicode |      4 |
    +--------------------+----------------------+---------------+--------+

    COLLATIONS

    COLLATIONS表提供有关每个字符集的排序规则的信息。

    > desc COLLATIONS;
    +--------------------+-------------+------+-----+---------+-------+
    | Field              | Type        | Null | Key | Default | Extra |
    +--------------------+-------------+------+-----+---------+-------+
    | COLLATION_NAME     | varchar(32) | NO   |     |         |       |
    | CHARACTER_SET_NAME | varchar(32) | NO   |     |         |       |
    | ID                 | bigint(11)  | NO   |     | 0       |       |
    | IS_DEFAULT         | varchar(3)  | NO   |     |         |       |
    | IS_COMPILED        | varchar(3)  | NO   |     |         |       |
    | SORTLEN            | bigint(3)   | NO   |     | 0       |       |
    +--------------------+-------------+------+-----+---------+-------+

    COLLATION_NAME is the collation name.

    CHARACTER_SET_NAME is the name of the character set with which the collation is associated.

    ID is the collation ID.

    IS_DEFAULT indicates whether the collation is the default for its character set.

    IS_COMPILED indicates whether the character set is compiled into the server.

    SORTLEN is related to the amount of memory required to sort strings expressed in the character set.

    每个character set会对应一定数量的collation:

    > select * from COLLATIONS where COLLATION_NAME like 'utf8%general%'; 
    +--------------------------+--------------------+-----+------------+-------------+---------+
    | COLLATION_NAME           | CHARACTER_SET_NAME | ID  | IS_DEFAULT | IS_COMPILED | SORTLEN |
    +--------------------------+--------------------+-----+------------+-------------+---------+
    | utf8_general_ci          | utf8               |  33 | Yes        | Yes         |       1 |
    | utf8_general_mysql500_ci | utf8               | 223 |            | Yes         |       1 |
    | utf8mb4_general_ci       | utf8mb4            |  45 | Yes        | Yes         |       1 |
    +--------------------------+--------------------+-----+------------+-------------+---------+

    ci 是 case insensitive 的缩写(大小写敏感), cs 是 case sensitive 的缩写。即,指定大小写是否敏感。​​

    COLLATION_CHARACTER_SET_APPLICABILITY

    COLLATION_CHARACTER_SET_APPLICABILITY表显示了哪种字符集适用于哪种排序方式。这些列相当于我们从SHOW COLLATION获得的前两个字段。

    > desc COLLATION_CHARACTER_SET_APPLICABILITY;
    +--------------------+-------------+------+-----+---------+-------+
    | Field              | Type        | Null | Key | Default | Extra |
    +--------------------+-------------+------+-----+---------+-------+
    | COLLATION_NAME     | varchar(32) | NO   |     |         |       |
    | CHARACTER_SET_NAME | varchar(32) | NO   |     |         |       |
    +--------------------+-------------+------+-----+---------+-------+

    COLUMNS

    COLUMNS表提供表格中列的信息。

    > desc COLUMNS;
    +--------------------------+---------------------+------+-----+---------+-------+
    | Field                    | Type                | Null | Key | Default | Extra |
    +--------------------------+---------------------+------+-----+---------+-------+
    | TABLE_CATALOG            | varchar(512)        | NO   |     |         |       |
    | TABLE_SCHEMA             | varchar(64)         | NO   |     |         |       |
    | TABLE_NAME               | varchar(64)         | NO   |     |         |       |
    | COLUMN_NAME              | varchar(64)         | NO   |     |         |       |
    | ORDINAL_POSITION         | bigint(21) unsigned | NO   |     | 0       |       |
    | COLUMN_DEFAULT           | longtext            | YES  |     | NULL    |       |
    | IS_NULLABLE              | varchar(3)          | NO   |     |         |       |
    | DATA_TYPE                | varchar(64)         | NO   |     |         |       |
    | CHARACTER_MAXIMUM_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
    | CHARACTER_OCTET_LENGTH   | bigint(21) unsigned | YES  |     | NULL    |       |
    | NUMERIC_PRECISION        | bigint(21) unsigned | YES  |     | NULL    |       |
    | NUMERIC_SCALE            | bigint(21) unsigned | YES  |     | NULL    |       |
    | DATETIME_PRECISION       | bigint(21) unsigned | YES  |     | NULL    |       |
    | CHARACTER_SET_NAME       | varchar(32)         | YES  |     | NULL    |       |
    | COLLATION_NAME           | varchar(32)         | YES  |     | NULL    |       |
    | COLUMN_TYPE              | longtext            | NO   |     | NULL    |       |
    | COLUMN_KEY               | varchar(3)          | NO   |     |         |       |
    | EXTRA                    | varchar(30)         | NO   |     |         |       |
    | PRIVILEGES               | varchar(80)         | NO   |     |         |       |
    | COLUMN_COMMENT           | varchar(1024)       | NO   |     |         |       |
    | GENERATION_EXPRESSION    | longtext            | NO   |     | NULL    |       |
    +--------------------------+---------------------+------+-----+---------+-------+
    21 rows in set (0.01 sec)

    COLUMN_PRIVILEGES

    COLUMN_PRIVILEGES表提供有关列权限的信息。 这些信息来自mysql.columns_priv授权表。

    > desc COLUMN_PRIVILEGES;
    +----------------+--------------+------+-----+---------+-------+
    | Field          | Type         | Null | Key | Default | Extra |
    +----------------+--------------+------+-----+---------+-------+
    | GRANTEE        | varchar(81)  | NO   |     |         |       |
    | TABLE_CATALOG  | varchar(512) | NO   |     |         |       |
    | TABLE_SCHEMA   | varchar(64)  | NO   |     |         |       |
    | TABLE_NAME     | varchar(64)  | NO   |     |         |       |
    | COLUMN_NAME    | varchar(64)  | NO   |     |         |       |
    | PRIVILEGE_TYPE | varchar(64)  | NO   |     |         |       |
    | IS_GRANTABLE   | varchar(3)   | NO   |     |         |       |
    +----------------+--------------+------+-----+---------+-------+

    PRIVILEGE_TYPE 可以包含一个(且只能有一个)这些值:SELECT,INSERT,UPDATE,REFERENCES。

    如果用户具有GRANT OPTION权限,则IS_GRANTABLE为YES。 否则,IS_GRANTABLE 为NO。 输出不会将GRANT OPTION列为单独的权限。

    ENGINES

    ENGINES表提供了有关存储引擎的信息。

    > desc ENGINES;
    +--------------+-------------+------+-----+---------+-------+
    | Field        | Type        | Null | Key | Default | Extra |
    +--------------+-------------+------+-----+---------+-------+
    | ENGINE       | varchar(64) | NO   |     |         |       |
    | SUPPORT      | varchar(8)  | NO   |     |         |       |
    | COMMENT      | varchar(80) | NO   |     |         |       |
    | TRANSACTIONS | varchar(3)  | YES  |     | NULL    |       |
    | XA           | varchar(3)  | YES  |     | NULL    |       |
    | SAVEPOINTS   | varchar(3)  | YES  |     | NULL    |       |
    +--------------+-------------+------+-----+---------+-------+

    ENGINES表是非标准表,其内容对应于SHOW ENGINES语句的列。

    EVENTS

    EVENTS表提供了有关定时事件(scheduled events)的信息,events类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。

    > desc events;
    +----------------------+---------------+------+-----+---------------------+-------+
    | Field                | Type          | Null | Key | Default             | Extra |
    +----------------------+---------------+------+-----+---------------------+-------+
    | EVENT_CATALOG        | varchar(64)   | NO   |     |                     |       |
    | EVENT_SCHEMA         | varchar(64)   | NO   |     |                     |       |
    | EVENT_NAME           | varchar(64)   | NO   |     |                     |       |
    | DEFINER              | varchar(77)   | NO   |     |                     |       |
    | TIME_ZONE            | varchar(64)   | NO   |     |                     |       |
    | EVENT_BODY           | varchar(8)    | NO   |     |                     |       |
    | EVENT_DEFINITION     | longtext      | NO   |     | NULL                |       |
    | EVENT_TYPE           | varchar(9)    | NO   |     |                     |       |
    | EXECUTE_AT           | datetime      | YES  |     | NULL                |       |
    | INTERVAL_VALUE       | varchar(256)  | YES  |     | NULL                |       |
    | INTERVAL_FIELD       | varchar(18)   | YES  |     | NULL                |       |
    | SQL_MODE             | varchar(8192) | NO   |     |                     |       |
    | STARTS               | datetime      | YES  |     | NULL                |       |
    | ENDS                 | datetime      | YES  |     | NULL                |       |
    | STATUS               | varchar(18)   | NO   |     |                     |       |
    | ON_COMPLETION        | varchar(12)   | NO   |     |                     |       |
    | CREATED              | datetime      | NO   |     | 0000-00-00 00:00:00 |       |
    | LAST_ALTERED         | datetime      | NO   |     | 0000-00-00 00:00:00 |       |
    | LAST_EXECUTED        | datetime      | YES  |     | NULL                |       |
    | EVENT_COMMENT        | varchar(64)   | NO   |     |                     |       |
    | ORIGINATOR           | bigint(10)    | NO   |     | 0                   |       |
    | CHARACTER_SET_CLIENT | varchar(32)   | NO   |     |                     |       |
    | COLLATION_CONNECTION | varchar(32)   | NO   |     |                     |       |
    | DATABASE_COLLATION   | varchar(32)   | NO   |     |                     |       |
    +----------------------+---------------+------+-----+---------------------+-------+
    24 rows in set (0.00 sec)

    • The EVENTS table is a nonstandard table.  # EVENTS表是非标准表

    • EVENT_CATALOG: The value of this column is always def.

    • EVENT_SCHEMA: # events 所属的库

    • EVENT_NAME: # event 名称

    • DEFINER:  # 创建EVENT的账号,'user_name'@'host_name'的格式

    • TIME_ZONE: The event time zone, which is the time zone used for scheduling the event and that is in effect within the event as it executes. The default value is SYSTEM.

    • EVENT_BODY: The language used for the statements in the event's DO clause; in MySQL 5.7, this is always SQL. This column is not to be confused with the column of the same name (now named EVENT_DEFINITION) that existed in earlier MySQL versions.  # 不要与早期版本的同名项(现在是EVENT_DEFINITION)混淆

    • EVENT_DEFINITION: # 时间需要执行的部分,即组成时间的Do子句。

    • EVENT_TYPE:  #事件重复类型,一次(transient)或重复(repeating)。

    • EXECUTE_AT: #对于一次性事件,这是在用于创建事件的CREATE EVENT语句的AT子句中指定的DATETIME值;如果事件的计时由EVERY子句而不是AT子句确定(也就是说,事件类型为repeating),则此列的值为NULL。

    • INTERVAL_VALUE:  #对于定期事件,此列包含事件的EVERY子句的数字部分。 对于一次性事件(即其定时由AT子句确定的事件),此列为NULL。

    • INTERVAL_FIELD:  #对于定期事件,此列包含EVERY子句的单位部分,用于管理事件的时间。因此,此列包含“YEAR”,“QUARTER”,“DAY”等值。对于一次性事件(即其定时由AT子句确定的事件),此列为NULL

    • SQL_MODE:   #在创建或更改事件并在其下执行事件时有效的SQL模式。

    • STARTS: #事件定义时包含了STARTS子句的事件,此列包含相应的DATETIME值。 与EXECUTE_AT列一样,此值可解析所使用的任何表达式。 如果没有影响事件时间的STARTS子句,则此列为NULL

    • ENDS:  #事件定义时包含了ENDS子句的循环事件,此列包含相应的DATETIME值。 与EXECUTE_AT列一样,此值可解析所使用的任何表达式。 如果没有影响事件时间的ENDS子句,则此列为NULL。

    • STATUS:  #ENABLE, DISABLE或SLAVESIDE_DISABLED 三个值之一。 SLAVESIDE_DISABLED表示事件的创建发生在另一个作为复制主服务器的MySQL服务器上,并被复制到当前作为从服务器的MySQL服务器上,但事件目前不在从服务器上执行。

    • ON_COMPLETION: One of the two values PRESERVE or NOT PRESERVE.

    • CREATED:  #事件创建时间

    • LAST_ALTERED:  #事件最后修改时间

    • LAST_EXECUTED:  #事件最后一次执行的时间

    • EVENT_COMMENT: #事件的注释

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

    • CHARACTER_SET_CLIENT: #事件创建时character_set_client系统变量的session值

    • COLLATION_CONNECTION: #事件创建时collation_connection系统变量的session值

    • DATABASE_COLLATION:  #与事件关联的数据库的排序规则。

    FILES

    FILES表提供有关存储MySQL表空间数据的文件信息。

    INFORMATION_SCHEMA.FILES提供有关InnoDB数据文件信息。在MySQL Cluster中,此表还提供有关存储MySQL Cluster磁盘数据表的文件信息。

    > desc FILES;
    +----------------------+---------------------+------+-----+---------+-------+
    | Field                | Type                | Null | Key | Default | Extra |
    +----------------------+---------------------+------+-----+---------+-------+
    | FILE_ID              | bigint(4)           | NO   |     | 0       |       |
    | FILE_NAME            | varchar(4000)       | YES  |     | NULL    |       |
    | FILE_TYPE            | varchar(20)         | NO   |     |         |       |
    | TABLESPACE_NAME      | varchar(64)         | YES  |     | NULL    |       |
    | TABLE_CATALOG        | varchar(64)         | NO   |     |         |       |
    | TABLE_SCHEMA         | varchar(64)         | YES  |     | NULL    |       |
    | TABLE_NAME           | varchar(64)         | YES  |     | NULL    |       |
    | LOGFILE_GROUP_NAME   | varchar(64)         | YES  |     | NULL    |       |
    | LOGFILE_GROUP_NUMBER | bigint(4)           | YES  |     | NULL    |       |
    | ENGINE               | varchar(64)         | NO   |     |         |       |
    | FULLTEXT_KEYS        | varchar(64)         | YES  |     | NULL    |       |
    | DELETED_ROWS         | bigint(4)           | YES  |     | NULL    |       |
    | UPDATE_COUNT         | bigint(4)           | YES  |     | NULL    |       |
    | FREE_EXTENTS         | bigint(4)           | YES  |     | NULL    |       |
    | TOTAL_EXTENTS        | bigint(4)           | YES  |     | NULL    |       |
    | EXTENT_SIZE          | bigint(4)           | NO   |     | 0       |       |
    | INITIAL_SIZE         | bigint(21) unsigned | YES  |     | NULL    |       |
    | MAXIMUM_SIZE         | bigint(21) unsigned | YES  |     | NULL    |       |
    | AUTOEXTEND_SIZE      | bigint(21) unsigned | YES  |     | NULL    |       |
    | CREATION_TIME        | datetime            | YES  |     | NULL    |       |
    | LAST_UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
    | LAST_ACCESS_TIME     | datetime            | YES  |     | NULL    |       |
    | RECOVER_TIME         | bigint(4)           | YES  |     | NULL    |       |
    | TRANSACTION_COUNTER  | bigint(4)           | YES  |     | NULL    |       |
    | VERSION              | bigint(21) unsigned | YES  |     | NULL    |       |
    | ROW_FORMAT           | varchar(10)         | YES  |     | NULL    |       |
    | TABLE_ROWS           | bigint(21) unsigned | YES  |     | NULL    |       |
    | AVG_ROW_LENGTH       | bigint(21) unsigned | YES  |     | NULL    |       |
    | DATA_LENGTH          | bigint(21) unsigned | YES  |     | NULL    |       |
    | MAX_DATA_LENGTH      | bigint(21) unsigned | YES  |     | NULL    |       |
    | INDEX_LENGTH         | bigint(21) unsigned | YES  |     | NULL    |       |
    | DATA_FREE            | bigint(21) unsigned | YES  |     | NULL    |       |
    | CREATE_TIME          | datetime            | YES  |     | NULL    |       |
    | UPDATE_TIME          | datetime            | YES  |     | NULL    |       |
    | CHECK_TIME           | datetime            | YES  |     | NULL    |       |
    | CHECKSUM             | bigint(21) unsigned | YES  |     | NULL    |       |
    | STATUS               | varchar(20)         | NO   |     |         |       |
    | EXTRA                | varchar(255)        | YES  |     | NULL    |       |
    +----------------------+---------------------+------+-----+---------+-------+
    38 rows in set (0.00 sec)

    InnoDB Notes

    以下说明适用于InnoDB数据文件。 下面没有描述的INFORMATION_SCHEMA.FILES字段不适用于InnoDB并报告NULL值。

    INFORMATION_CHEMA.FILES报告的数据来自于InnoDB打开文件的内存缓存。相比之下,INFORMATION_SCHEMA.INNODB_SYS_DATAFILES 从InnoDB SYS_DATAFILES内部数据字典表中报告数据。

    INFORMATION_SCHEMA.FILES报告的数据包括临时表空间数据。此数据在内部SYS_DATAFILES数据字典表中不可得,因此不由INNODB_SYS_DATAFILES报告。

    当使用innodb_undo_tablespaces配置单独的undo表空间时,INFORMATION_SCHEMA.FILES则会报告undo表空间的数据。

    FILE_ID指表空间ID,也被称为space_id或fil_space_t :: id。

    FILE_NAME  # FILE_NAME是数据文件的名称。 每个表文件和常规表空间都有一个.ibd文件扩展名。undo表空间的前缀为undo。 系统表空间的前缀是ibdata。 临时表空间由ibtmp作为前缀。 文件名包括文件路径,可能与MySQL数据目录(datadir)有关。

    FILE_TYPE  # FILE_TYPE是表空间文件类型。 InnoDB文件有三种可能的文件类型。 TABLESPACE是用于保存表,索引或其他形式的用户数据的表空间文件类型。 TEMPORARY是临时表空间的文件类型。 UNDO LOG是undo日志表空间的文件类型,用于保存undo记录。 默认情况下,undo记录存储在系统表空间中。 可以使用innodb_undo_tablespaces选项来添加独立的undo日志表空间。

    TABLESPACE_NAME  # TABLESPACE_NAME是表空间的SQL名称。 常规表空间(general tablespace)名称是SYS_TABLESPACES.NAME值。 对于其他表空间文件,名称以innodb_开头,例如innodb_system,innodb_undo和innodb_file_per_table。 file-per-table表空间名称格式是innodb_file_per_table _ ##,其中##是表空间ID。

    ENGINE  # ENGINE是指存储引擎。对于InnoDB文件,值总是InnoDB。

    innodb 表空间结构:page(页)—>  extent(区)—> segment(段)—> tablespace(表空间)

    FREE_EXTENTS  # FREE_EXTENTS是当前数据文件中完全可用的区的数量。

    TOTAL_EXTENTS # TOTAL_EXTENTS是当前数据文件中使用的完全区(full extents)的数量,文件末尾的局部区(partial extent)不计算在内。

    EXTENT_SIZE  #对于4k,8k或16k页面大小的文件,EXTENT_SIZE是1048576(1MB)。 对于32k页面大小的文件,扩展大小为2097152字节(2MB),对于64k页面大小的文件,扩展大小为4194304(4MB)。 INFORMATION_SCHEMA.FILES不报告InnoDB页面大小。页面大小由innodb_page_size选项定义。扩展大小信息也可以从INNODB_SYS_TABLESPACES中检索到,其中FILES.FILE_ID = INNODB_SYS_TABLESPACES.SPACE_ID。

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

    MAXIMUM_SIZE # MAXIMUM_SIZE是文件中允许的最大字节数。 除预定义的系统表空间数据文件外,所有数据文件的值均为NULL。 最大系统表空间文件大小由innodb_data_file_path定义。 最大临时表空间文件大小由innodb_temp_data_file_path定义。 预定义的系统表空间数据文件的NULL值表示没有明确定义文件大小限制。

    AUTOEXTEND_SIZE  # AUTOEXTEND_SIZE是由innodb_data_file_path为系统表空间定义的自动扩展大小,或由临时表空间的innodb_temp_data_file_path定义。

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

    STATUS  # STATUS默认为NORMAL。 InnoDB file-per-table表空间可能会报告IMPORTING,这表明表空间不可用。

    NDB Notes

    太多了,这里先不列举了,有兴趣的可以自行查看手册。

    important

    一旦某个extent(区)被使用,delete from 语句不会释放磁盘空间,drop 数据文件才能释放。

    GLOBAL_STATUS & SESSION_STATUS & GLOBAL_VARIABLES & SESSION_VARIABLES

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

    GLOBAL_VARIABLES和SESSION_VARIABLES表提供有关服务器状态变量的信息。 它们的内容对应于SHOW GLOBAL VARIABLES和SHOW SESSION VARIABLES语句所产生的信息。

    从MySQL 5.7.6开始,这里描述的4张表中的信息也可在Performance Schema中获取。 INFORMATION_SCHEMA表不推荐优先于Performance Schema表,并将在未来的MySQL版本中被删除。(从mysql 5.7.6开始 information_schema.global_status 已经开始被舍弃,为了兼容性,此时需要打开 show_compatibility_56

    > desc GLOBAL_STATUS;
    +----------------+---------------+------+-----+---------+-------+
    | Field          | Type          | Null | Key | Default | Extra |
    +----------------+---------------+------+-----+---------+-------+
    | VARIABLE_NAME  | varchar(64)   | NO   |     |         |       |
    | VARIABLE_VALUE | varchar(1024) | YES  |     | NULL    |       |
    +----------------+---------------+------+-----+---------+-------+

    KEY_COLUMN_USAGE

    KEY_COLUMN_USAGE表描述了哪些键列有约束条件。

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

    ORDINAL_POSITION的值是列在约束中的位置,而不是列在表中的位置。 列位置从1开始编号。

    对于唯一主键约束,POSITION_IN_UNIQUE_CONSTRAINT的值为NULL。 对于外键约束,它是被引用的表的键中的序数位置。

    OPTIMIZER_TRACE

    OPTIMIZER_TRACE表提供了优化器跟踪功能产生的信息。要启用跟踪(tracking),使用optimizer_trace系统变量。

    PARAMETERS

    PARAMETERS表提供有关存储过程和函数参数的信息,以及有关存储函数的返回值的信息。 参数信息与mysql.proc表中param_list列的内容类似。

    PARTITIONS

    PARTITIONS表提供有关表分区的信息。 有关分区表的更多信息,请参见第21章分区。

    > desc PARTITIONS;
    +-------------------------------+---------------------+------+-----+---------+-------+
    | Field                         | Type                | Null | Key | Default | Extra |
    +-------------------------------+---------------------+------+-----+---------+-------+
    | TABLE_CATALOG                 | varchar(512)        | NO   |     |         |       | always def
    | TABLE_SCHEMA                  | varchar(64)         | NO   |     |         |       | 分区所属的库
    | TABLE_NAME                    | varchar(64)         | NO   |     |         |       | 分区所属的表
    | PARTITION_NAME                | varchar(64)         | YES  |     | NULL    |       | 分区名
    | SUBPARTITION_NAME             | varchar(64)         | YES  |     | NULL    |       | 子分区名
    | PARTITION_ORDINAL_POSITION    | bigint(21) unsigned | YES  |     | NULL    |       | 分区的编号
    | SUBPARTITION_ORDINAL_POSITION | bigint(21) unsigned | YES  |     | NULL    |       | 子分区编号
    | PARTITION_METHOD              | varchar(18)         | YES  |     | NULL    |       | 分区类型,RANGE, LIST, HASH, LINEAR HASH, KEY, or LINEAR KEY;
    | SUBPARTITION_METHOD           | varchar(12)         | YES  |     | NULL    |       | 子分区类型
    | PARTITION_EXPRESSION          | longtext            | YES  |     | NULL    |       | 分区函数的表达式
    | SUBPARTITION_EXPRESSION       | longtext            | YES  |     | NULL    |       |
    | PARTITION_DESCRIPTION         | longtext            | YES  |     | NULL    |       | 用于range和list,定义分区范围的值
    | TABLE_ROWS                    | bigint(21) unsigned | NO   |     | 0       |       | 该分区的行数
    | AVG_ROW_LENGTH                | bigint(21) unsigned | NO   |     | 0       |       | 行的平均长度(字节)= DATA_LENGTH/ TABLE_ROWS
    | DATA_LENGTH                   | bigint(21) unsigned | NO   |     | 0       |       | 所有行的总长度(字节)
    | MAX_DATA_LENGTH               | bigint(21) unsigned | YES  |     | NULL    |       | 可以存储在此分区或子分区中的最大字节数
    | INDEX_LENGTH                  | bigint(21) unsigned | NO   |     | 0       |       | 索引长度(字节)
    | DATA_FREE                     | bigint(21) unsigned | NO   |     | 0       |       | 分配给分区或子分区但未使用的字节数。
    | CREATE_TIME                   | datetime            | YES  |     | NULL    |       | 分区创建时间
    | UPDATE_TIME                   | datetime            | YES  |     | NULL    |       | 分区更新时间
    | CHECK_TIME                    | datetime            | YES  |     | NULL    |       |
    | CHECKSUM                      | bigint(21) unsigned | YES  |     | NULL    |       |
    | PARTITION_COMMENT             | varchar(80)         | NO   |     |         |       |
    | NODEGROUP                     | varchar(12)         | NO   |     |         |       |
    | TABLESPACE_NAME               | varchar(64)         | YES  |     | NULL    |       | 分区所属的表空间
    +-------------------------------+---------------------+------+-----+---------+-------+
    25 rows in set (0.00 sec)

    PLUGINS

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

    > desc PLUGINS;
    +------------------------+-------------+------+-----+---------+-------+
    | Field                  | Type        | Null | Key | Default | Extra |
    +------------------------+-------------+------+-----+---------+-------+
    | PLUGIN_NAME            | varchar(64) | NO   |     |         |       |
    | PLUGIN_VERSION         | varchar(20) | NO   |     |         |       |
    | PLUGIN_STATUS          | varchar(10) | NO   |     |         |       | 插件状态,ACTIVE,INACTIVE,DISABLED或DELETED
    | PLUGIN_TYPE            | varchar(80) | NO   |     |         |       |
    | PLUGIN_TYPE_VERSION    | varchar(20) | NO   |     |         |       |
    | PLUGIN_LIBRARY         | varchar(64) | YES  |     | NULL    |       | 插件共享库文件的名称,如server_audit.so,如果为NULL,则插件不能卸除
    | PLUGIN_LIBRARY_VERSION | varchar(20) | YES  |     | NULL    |       |
    | PLUGIN_AUTHOR          | varchar(64) | YES  |     | NULL    |       |
    | PLUGIN_DESCRIPTION     | longtext    | YES  |     | NULL    |       |
    | PLUGIN_LICENSE         | varchar(80) | YES  |     | NULL    |       |
    | LOAD_OPTION            | varchar(64) | NO   |     |         |       | 如何加载插件,值为OFF,ON,FORCE或FORCE_PLUS_PERMANENT
    +------------------------+-------------+------+-----+---------+-------+

    PROCESSLIST

    PROCESSLIST表提供有关正在运行的线程信息。

    > desc PROCESSLIST;
    +---------+---------------------+------+-----+---------+-------+
    | Field   | Type                | Null | Key | Default | Extra |
    +---------+---------------------+------+-----+---------+-------+
    | ID      | bigint(21) unsigned | NO   |     | 0       |       |
    | USER    | varchar(32)         | NO   |     |         |       |
    | HOST    | varchar(64)         | NO   |     |         |       |
    | DB      | varchar(64)         | YES  |     | NULL    |       |
    | COMMAND | varchar(16)         | NO   |     |         |       |
    | TIME    | int(7)              | NO   |     | 0       |       |
    | STATE   | varchar(64)         | YES  |     | NULL    |       |
    | INFO    | longtext            | YES  |     | NULL    |       |
    +---------+---------------------+------+-----+---------+-------+

    PROFILING

    PROFILING表提供语句分析信息。 其内容对应于SHOW PROFILES和SHOW PROFILE声明所产生的信息。

    warning:INFORMATION_SCHEMA.PROFILING 在以后的版本将被移除,请使用 Performance Schema 代替。

    REFERENTIAL_CONSTRAINTS

    REFERENTIAL_CONSTRAINTS表提供有关外键的信息。

    ROUTINES

    ROUTINES表提供有关routines(存储过程procedures和函数functions)的信息。 ROUTINES表不包括用户定义的函数(UDF)。

    SCHEMATA

    schema是一个数据库,所以SCHEMATA表提供有关数据库的信息。

    SCHEMA_PRIVILEGES

    SCHEMA_PRIVILEGES表提供有关schema(数据库)特权的信息。 这些信息来自mysql.db授权表。

    STATISTICS

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

    TABLES

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

    TABLESPACES

    TABLESPACES表提供有关active表空间的信息。

    INFORMATION_SCHEMA.TABLESPACES表不提供有关InnoDB表空间的信息。对于InnoDB表空间元数据,请参阅INNODB_SYS_TABLESPACES和INNODB_SYS_DATAFILES。 从MySQL 5.7.8开始,INFORMATION_SCHEMA.FILES表还提供了InnoDB表空间的元数据。

    TABLE_CONSTRAINTS

    TABLE_CONSTRAINTS表描述哪些表有约束。

    CONSTRAINT_TYPE值可以是UNIQUE,PRIMARY KEY或FOREIGN KEY。

    当Non_unique字段为0时,UNIQUE和PRIMARY KEY信息与从SHOW INDEX输出中的Key_name字段获得的信息大致相同。

    CONSTRAINT_TYPE列可以包含以下值之一:UNIQUE,PRIMARY KEY,FOREIGN KEY,CHECK。 这是一个CHAR(不是ENUM)列。 直到我们支持CHECK,CHECK值才可用。

    TABLE_PRIVILEGES

    TABLE_PRIVILEGES表提供有关表特权的信息。 这些信息来自mysql.tables_priv授权表。

    PRIVILEGE_TYPE可以包含一个(且只能一个)这些值:SELECT,INSERT,UPDATE,REFERENCES,ALTER,INDEX,DROP,CREATE VIEW。

    TRIGGERS

    TRIGGERS表提供关于触发器的信息。 要查看有关表触发器的信息,您必须具有该表的TRIGGER权限。

    USER_PRIVILEGES

    USER_PRIVILEGES表提供有关全局权限的信息。 这些信息来自mysql.user授权表。

    VIEWS

    VIEWS表提供关于数据库中视图的信息。 您必须具有SHOW VIEW权限才能访问此表。

    InnoDB Tables

    另外还有 INNODB 相关的表:

    INNODB_LOCKS,INNODB_TRX,INNODB_SYS_DATAFILES,INNODB_FT_CONFIG,INNODB_SYS_VIRTUAL,INNODB_CMP,INNODB_FT_BEING_DELETED,INNODB_CMP_RESET,INNODB_CMP_PER_INDEX,INNODB_CMPMEM_RESET,INNODB_FT_DELETED,INNODB_BUFFER_PAGE_LRU,INNODB_LOCK_WAITS,INNODB_TEMP_TABLE_INFO,INNODB_SYS_INDEXES,INNODB_SYS_TABLES,INNODB_SYS_FIELDS,INNODB_CMP_PER_INDEX_RESET,INNODB_BUFFER_PAGE,INNODB_FT_DEFAULT_STOPWORD,INNODB_FT_INDEX_TABLE,INNODB_FT_INDEX_CACHE,INNODB_SYS_TABLESPACES,INNODB_METRICS,INNODB_SYS_FOREIGN_COLS,INNODB_CMPMEM,INNODB_BUFFER_POOL_STATS,INNODB_SYS_COLUMNS,INNODB_SYS_FOREIGN,INNODB_SYS_TABLESTATS

    相关信息可查询官方手册。

  • 相关阅读:
    关闭游标
    OCP-1Z0-053-200题-19题-601
    OCP-1Z0-053-200题-17题-99
    OCP-1Z0-053-200题-18题-100
    OCP-1Z0-053-V13.02-99题
    OCP-1Z0-053-200题-16题-98
    OCP-1Z0-053-200题-15题-15
    OCP-1Z0-053-200题-14题-675
    OCP-1Z0-053-200题-13题-97
    OCP-1Z0-053-200题-12题-96
  • 原文地址:https://www.cnblogs.com/waynechou/p/information_schema.html
Copyright © 2011-2022 走看看