Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  InnoDB INFORMATION_SCHEMA Temporary Table Info Table

17.15.7 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                      |
+---------------------------------------------+

查看表定义,请参见第28.4.27节,“The INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO Table”

示例17.12 INNODB_TEMP_TABLE_INFO

这个示例演示了INNODB_TEMP_TABLE_INFO 表的特征。

  1. 创建一个简单的 InnoDB 临时表:

    mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
  2. 查询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。由于 InnoDB 总是创建三个隐藏表列(DB_ROW_IDDB_TRX_IDDB_ROLL_PTR),因此列数 (N_COLS) 为 4,而不是 1。

  3. 重启 MySQL,然后查询INNODB_TEMP_TABLE_INFO

    mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G

    返回空集,因为INNODB_TEMP_TABLE_INFO 和其数据在服务器关闭时不被持久化到磁盘。

  4. 创建一个新的临时表。

    mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
  5. 查询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

    由于空间 ID 是在服务器启动时动态生成的,因此可能不同。