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
テーブルの特性を示します。
-
単純な
InnoDB
一時テーブルを作成します:mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
-
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_ID
、DB_TRX_ID
およびDB_ROLL_PTR
) が作成されるため、カラム数 (N_COLS
) は 1 ではなく 4 です。 -
MySQL を再起動し、
INNODB_TEMP_TABLE_INFO
をクエリーします。mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G
サーバーの停止時に
INNODB_TEMP_TABLE_INFO
とそのデータがディスクに永続化されないため、空のセットが返されます。 -
新しい一時テーブルを作成します。
mysql> CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB;
-
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 は、サーバーの起動時に動的に生成されるため、異なる場合があります。