MySQL 8.4 发行说明
INNODB_TEMP_TABLE_INFO 提供有关 InnoDB 实例中处于活动状态的用户创建的 InnoDB 临时表的信息。 它不提供有关优化器使用的内部 InnoDB 临时表的信息。
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 表”。
示例 17.12 INNODB_TEMP_TABLE_INFO
本示例演示了 INNODB_TEMP_TABLE_INFO 表的特征。
创建一个简单的
InnoDB临时表mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;查询
INNODB_TEMP_TABLE_INFO以查看临时表元数据。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)。重启 MySQL 并查询
INNODB_TEMP_TABLE_INFO。mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G返回一个空集,因为服务器关闭时,
INNODB_TEMP_TABLE_INFO及其数据不会持久保存到磁盘。创建一个新的临时表。
mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;查询
INNODB_TEMP_TABLE_INFO以查看临时表元数据。mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G *************************** 1. row *************************** TABLE_ID: 196 NAME: #sql7b0e_1_0 N_COLS: 4 SPACE: 184SPACEID 可能不同,因为它是服务器启动时动态生成的。