• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • InnoDB INFORMATION_SCHEMA临时表信息表

    INNODB_TEMP_TABLE_INFO提供有关InnoDBInnoDB实例中活动的用户创建的临时表的信息。它不提供有关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表的特征。

    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_ID,和DB_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
      

      SPACEID可能有所不同,因为它是在服务器启动时动态生成的。