INNODB_TEMP_TABLE_INFO 提供有关在 InnoDB 实例中活动的用户创建的 InnoDB 临时表的信息。它不提供有关优化器使用的内部 InnoDB 临时表的信息。INNODB_TEMP_TABLE_INFO provides
information about user-created InnoDB temporary
tables that are active in the InnoDB instance.
It does not provide information about internal
InnoDB temporary tables used by the optimizer.
mysql> SHOW TABLES FROM INFORMATION_SCHEMA LIKE 'INNODB_TEMP%';
+---------------------------------------------+
| Tables_in_INFORMATION_SCHEMA (INNODB_TEMP%) |
+---------------------------------------------+
| INNODB_TEMP_TABLE_INFO |
+---------------------------------------------+
有关表定义,请参见 第 28.4.27 节,“INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO 表”。For the table definition, see Section 28.4.27, “The INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO Table”.
示例 17.12 INNODB_TEMP_TABLE_INFOExample 17.12 INNODB_TEMP_TABLE_INFO
此示例演示了 INNODB_TEMP_TABLE_INFO 表的特性。This example demonstrates characteristics of the
INNODB_TEMP_TABLE_INFO table.
创建一个简单的
InnoDB临时表:Create a simpleInnoDBtemporary table:mysql>
CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;查询
INNODB_TEMP_TABLE_INFO查看临时表的元数据。QueryINNODB_TEMP_TABLE_INFOto view the temporary table metadata.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G*************************** 1. row *************************** TABLE_ID: 194 NAME: #sql7a79_1_0 N_COLS: 4 SPACE: 182TABLE_ID是临时表的唯一标识符。NAME列显示临时表的系统生成名称,该名称以 “#sql” 为前缀。列数(N_COLS)为 4 而非 1,因为InnoDB始终创建三个隐藏表列(DB_ROW_ID、DB_TRX_ID和DB_ROLL_PTR)。TheTABLE_IDis a unique identifier for the temporary table. TheNAMEcolumn displays the system-generated name for the temporary table, which is prefixed with “#sql”. The number of columns (N_COLS) is 4 rather than 1 becauseInnoDBalways creates three hidden table columns (DB_ROW_ID,DB_TRX_ID, andDB_ROLL_PTR).重启 MySQL 并查询
INNODB_TEMP_TABLE_INFO。Restart MySQL and queryINNODB_TEMP_TABLE_INFO.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G返回空集是因为
INNODB_TEMP_TABLE_INFO及其数据在服务器关闭时不会持久化到磁盘。An empty set is returned becauseINNODB_TEMP_TABLE_INFOand its data are not persisted to disk when the server is shut down.创建一个新的临时表。Create a new temporary table.
mysql>
CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;查询
INNODB_TEMP_TABLE_INFO查看临时表的元数据。QueryINNODB_TEMP_TABLE_INFOto view the temporary table metadata.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G*************************** 1. row *************************** TABLE_ID: 196 NAME: #sql7b0e_1_0 N_COLS: 4 SPACE: 184SPACEID 可能不同,因为它是在服务器启动时动态生成的。TheSPACEID may be different because it is dynamically generated when the server is started.