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 |
+---------------------------------------------+
有关表定义,请参阅 第 24.4.27 节,“INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO 表”。
例 14.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: 182 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSE
TABLE_ID
是临时表的唯一标识符 。该NAME
列显示系统为临时表生成的名称,该名称以“ #sql ”为前缀。列数 (N_COLS
) 是 4 而不是 1,因为InnoDB
总是创建三个隐藏表列(DB_ROW_ID
、DB_TRX_ID
和DB_ROLL_PTR
)。PER_TABLE_TABLESPACE
并IS_COMPRESSED
报告TRUE
压缩的临时表。否则,这些字段报告FALSE
。创建一个压缩的临时表。
mysql> CREATE TEMPORARY TABLE t2 (c1 INT) ROW_FORMAT=COMPRESSED ENGINE=INNODB;
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G *************************** 1. row *************************** TABLE_ID: 195 NAME: #sql7a79_1_1 N_COLS: 4 SPACE: 183 PER_TABLE_TABLESPACE: TRUE IS_COMPRESSED: TRUE *************************** 2. row *************************** TABLE_ID: 194 NAME: #sql7a79_1_0 N_COLS: 4 SPACE: 182 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSE
PER_TABLE_TABLESPACE
并IS_COMPRESSED
报告TRUE
压缩的临时表。压缩临时表的SPACE
ID 不同,因为压缩临时表是在单独的 file-per-table 表空间中创建的。非压缩临时表在共享临时表空间 (ibtmp1
) 中创建并报告相同的SPACE
ID。重启 MySQL 并查询
INNODB_TEMP_TABLE_INFO
。mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G Empty set (0.00 sec)
返回一个空集,因为
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: 184 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSE
SPACE
ID 可能不同,因为它是在服务器启动时动态生成的 。