非常に大きなテーブルを操作する場合、大量のデータの小さなサブセットを取得するために多くのクエリを実行する必要がある場合があります。これらのクエリをテーブル全体に対して実行するのではなく、毎回必要な少数のレコードを MySQL に検索させます。一時テーブルにレコードを選択する方が速いかもしれません
いくつかを選択し、これらのテーブルに対してクエリを実行します。
一時テーブルは、通常の CREATE TABLE ステートメントに TEMPORARY キーワードを追加するだけで簡単に作成できます。
一時テーブルの作成 tmp_table (
名前 VARCHAR(10) NOT NULL,
値 INTEGER NOT NULL
)
一時テーブルは、MySQL への接続の間存在します。切断すると、MySQL は自動的にテーブルを削除し、使用されていたスペースを解放します。もちろん、接続したままテーブルを下ろしてスペースを空けることもできます。
ドロップテーブル tmp_table
tmp_table という名前の一時テーブルを作成するときに、tmp_table という名前のテーブルがデータベースにすでに存在する場合、一時テーブルは非一時テーブル tmp_table をマスク (非表示) する必要があります。
一時テーブルを HEAP テーブルとして宣言すると、MySQL ではメモリ内に一時テーブルが作成されるように指定することもできます。
一時テーブルの作成 tmp_table (
名前 VARCHAR(10) NOT NULL,
値 INTEGER NOT NULL
) タイプ = ヒープ
HEAP テーブルはメモリに格納されるため、そのテーブルに対して実行するクエリは、ディスク上の一時テーブルよりも高速になる可能性があります。ただし、HEAP テーブルは通常のテーブルとは若干異なり、独自の制限があります。詳細については、MySQL リファレンス マニュアルを参照してください。
前に提案したように、一時テーブルをテストして、大規模なデータベースに対してクエリを実行するよりも実際に高速かどうかを確認する必要があります。データのインデックスが適切に作成されている場合、一時テーブルはまったく高速ではない可能性があります。