MySQL 5.7版本说明
INNODB_TEMP_TABLE_INFO
提供有关用户创建的信息InnoDB
类中活动的临时表InnoDB
实例。它不提供内部信息InnoDB
优化器使用的临时表。
显示INNODB_TEMP%中的表+---------------------------------------------+ | Tables_in_INFORMATION_SCHEMA (INNODB_TEMP %) | +---------------------------------------------+ | INNODB_TEMP_TABLE_INFO | +---------------------------------------------+
有关表定义,请参见Section 24.4.27“INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO表”.
例14.12 INNODB_TEMP_TABLE_INFO
创建一个简单的
InnoDB
临时表:创建临时表t1 (c1 INT PRIMARY KEY)
查询
INNODB_TEMP_TABLE_INFO
查看临时表元数据。mysql> SELECT * FROM INFORMATION_SCHEMAINNODB_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
临时表的唯一标识符。的的名字
列显示系统为临时表生成的名称,该名称的前缀为”# sql”.列数(N_COLS
)是4而不是1,因为InnoDB
总是创建三个隐藏的表列(DB_ROW_ID
,DB_TRX_ID
,DB_ROLL_PTR
).PER_TABLE_TABLESPACE
而且IS_COMPRESSED
报告真正的
用于压缩临时表。否则,这些字段报告假
.创建一个压缩临时表。
创建临时表t2 (c1 INT) ROW_FORMAT=COMPRESSED ENGINE=INNODB;
mysql> SELECT * FROM INFORMATION_SCHEMAINNODB_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
报告真正的
用于压缩临时表。的空间
压缩临时表的ID不同,因为压缩临时表是在单独的文件-表空间中创建的。在共享临时表空间(ibtmp1
)并报告相同的情况空间
ID。重新启动MySQL并查询
INNODB_TEMP_TABLE_INFO
.mysql> SELECT * FROM INFORMATION_SCHEMAINNODB_TEMP_TABLE_INFO\G Empty set (0.00 sec)
返回空集的原因是
INNODB_TEMP_TABLE_INFO
当服务器关闭时,它的数据不会持久化到磁盘上。创建一个新的临时表。
创建临时表t1 (c1 INT PRIMARY KEY)
查询
INNODB_TEMP_TABLE_INFO
查看临时表元数据。mysql> SELECT * FROM INFORMATION_SCHEMAINNODB_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
的
空间
ID可能不同,因为它是在服务器启动时动态生成的。