ホームページ >php教程 >php手册 >mysqlの一時テーブル

mysqlの一時テーブル

WBOY
WBOYオリジナル
2016-06-21 09:09:051652ブラウズ

mysql|一時テーブル

非常に大きなテーブルを操作する場合、大量のデータの小さなサブセットを取得するために多くのクエリを実行する必要がある場合があります。これらのクエリをテーブル全体に対して実行する代わりに、毎回必要な少数のレコードを MySQL に検索させることができます。一時テーブルにレコードを選択してから、それらのテーブルに対してクエリを実行する方が速い場合があります。

一時テーブルの作成は簡単です。通常の CREATE TABLE ステートメントに TEMPORARY キーワードを追加します。

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)

一時テーブルは次のようになります。 MySQL への接続中に存在します。切断すると、MySQL は自動的にテーブルを削除し、使用されていたスペースを解放します。もちろん、接続したままテーブルを下ろしてスペースを空けることもできます。

DROP TABLE tmp_table

tmp_table という名前の一時テーブルを作成するときに、tmp_table という名前のテーブルがデータベースにすでに存在する場合、一時テーブルは非一時テーブル tmp_table をマスク (非表示) する必要があります。

一時テーブルを HEAP テーブルとして宣言する場合、MySQL ではメモリ内に作成するように指定することもできます:

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP


HEAP テーブルはメモリに保存されるため、そのテーブルに対して実行するクエリは、ディスク上の一時テーブルよりも高速になる可能性があります。ただし、HEAP テーブルは通常のテーブルとは若干異なり、独自の制限があります。詳細については、MySQL リファレンス マニュアルを参照してください。

前に提案したように、一時テーブルをテストして、大規模なデータベースに対してクエリを実行するよりも実際に速いかどうかを確認する必要があります。データのインデックスが適切に作成されている場合、一時テーブルはまったく高速ではない可能性があります。




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。