ホームページ  >  記事  >  データベース  >  mysql で一時テーブルを使用する場合

mysql で一時テーブルを使用する場合

WBOY
WBOYオリジナル
2022-05-26 17:11:262494ブラウズ

mysql で一時テーブルを使用する場合: 1. UNION クエリで TEMPTABLE アルゴリズムまたはビューを使用する場合; 2. DISTINCT クエリを使用し、ORDER BY を追加する場合; 3. SQL で "SQL_SMALL_RESULT" を使用する場合オプション; 4. FROMなどでサブクエリを使用する場合

mysql で一時テーブルを使用する場合

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql で一時テーブルを使用する場合

MySQL は次の状況で一時テーブルを作成します:

1. UNION クエリ;

2. TEMPTABLE アルゴリズムまたは UNION クエリのビューを使用する;

3. ORDER BY と GROUP BY の句が異なる場合;

4. テーブル接続では、ORDER BY の列がドライバー テーブルにありません;

5. DISTINCT をクエリして ORDER BY を追加する場合;

6. SQL_SMALL_RESULT オプションが SQL で使用される場合;

7 . Subquery in FROM;

8, subquery or table created while semi-join;

EXPLAIN 実行計画結果の Extra 列を確認し、Using Temporary が含まれていれば、一時テーブル。

もちろん、一時テーブルに保存する必要があるデータの量が上限 (tmp-table-size または max-heap-table-size のどちらか大きい方) を超える場合は、ディスクベースの一時テーブルを生成します。

次の状況では、ディスク一時テーブルが作成されます:

1. データ テーブルには BLOB/TEXT 列が含まれます;

2. GROUP BY または DSTINCT の列に、512 文字を超える文字型の列 (または 5.6.15 より前では 512 バイトを超えるバイナリ型の列、512 バイトを超えるかどうかのみ) があります;

3. SELECT では、 UNION、UNION ALL クエリ、最大長が 512 を超える列があります (文字列型の場合は 512 文字、バイナリ型の場合は 512 バイト);

4. SHOW COLUMNS/FIELDS および DESCRIBE を実行します。実行結果にはBLOB列型が使用されます。

5.7.5 以降、ディスク一時テーブルのエンジン タイプを InnoDB として定義できる新しいシステム オプション external_tmp_disk_storage_engine が追加されました。これより前は、MyISAM のみが使用可能でした。 5.6.3 以降に追加された新しいシステム オプションdefault_tmp_storage_engine は、CREATE TEMPORARY TABLE によって作成される一時テーブルのエンジン タイプを制御します。以前は、デフォルトは MEMORY でした。この 2 つを混同しないでください。

次の例を参照してください:

mysql で一時テーブルを使用する場合

推奨学習: mysql ビデオ チュートリアル

以上がmysql で一時テーブルを使用する場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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