MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
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 |
+---------------------------------------------+
For the table definition, see Section 24.4.27, “The INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO Table”.
Example 14.12 INNODB_TEMP_TABLE_INFO
This example demonstrates characteristics of the
INNODB_TEMP_TABLE_INFO
table.
Create a simple InnoDB
temporary table:
mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
Query INNODB_TEMP_TABLE_INFO
to
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: 182
PER_TABLE_TABLESPACE: FALSE
IS_COMPRESSED: FALSE
The TABLE_ID
is a unique identifier for
the temporary table. The NAME
column
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
because InnoDB
always creates three
hidden table columns (DB_ROW_ID
,
DB_TRX_ID
, and
DB_ROLL_PTR
).
PER_TABLE_TABLESPACE
and
IS_COMPRESSED
report
TRUE
for compressed temporary tables.
Otherwise, these fields report FALSE
.
Create a compressed temporary table.
mysql> CREATE TEMPORARY TABLE t2 (c1 INT) ROW_FORMAT=COMPRESSED ENGINE=INNODB;
Query INNODB_TEMP_TABLE_INFO
again.
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
and
IS_COMPRESSED
report
TRUE
for the compressed temporary table.
The SPACE
ID for the compressed temporary
table is different because compressed temporary tables are
created in separate file-per-table tablespaces.
Non-compressed temporary tables are created in the shared
temporary tablespace (ibtmp1
) and
report the same SPACE
ID.
Restart MySQL and query
INNODB_TEMP_TABLE_INFO
.
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
Empty set (0.00 sec)
An empty set is returned because
INNODB_TEMP_TABLE_INFO
and 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;
Query INNODB_TEMP_TABLE_INFO
to
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: 184
PER_TABLE_TABLESPACE: FALSE
IS_COMPRESSED: FALSE
The SPACE
ID may be different because it
is dynamically generated when the server is started.