MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

15.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                      |
+---------------------------------------------+

テーブル定義については、セクション26.51.28「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 という接頭辞が付いた一時テーブルのシステム生成名が表示されます。 InnoDB では常に 3 つの非表示のテーブルのカラム (DB_ROW_IDDB_TRX_ID および DB_ROLL_PTR) が作成されるため、カラム数 (N_COLS) は 1 ではなく 4 です。

  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 は、サーバーの起動時に動的に生成されるため、異なる場合があります。