文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  InnoDB INFORMATION_SCHEMA 临时表信息表

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 节,“INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO 表”

示例 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 为前缀。 列数 (N_COLS) 为 4 而不是 1,因为 InnoDB 始终会创建三个隐藏的表列(DB_ROW_IDDB_TRX_IDDB_ROLL_PTR)。

  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

    SPACE ID 可能不同,因为它是服务器启动时动态生成的。