InnoDB INFORMATION_SCHEMA临时表信息表
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 | +--------------------------------------------- +
有关表的定义,请参见“ INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO表”。
示例15.12 INNODB_TEMP_TABLE_INFO
本示例演示该INNODB_TEMP_TABLE_INFO
表的特征。
创建一个简单的
InnoDB
临时表:mysql>
CREATE TEMPORARY TABLE t1 (c1 INTPRIMARY 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的
TABLE_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 INTPRIMARY 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该
SPACE
ID可能有所不同,因为它是在服务器启动时动态生成的。