MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
MySQL クエリーオプティマイザには、サブクエリーの評価に使用できる様々な戦略があります:
IN、= ANY または EXISTS 述語で使用されるサブクエリーの場合、オプティマイザには次の選択肢があります:
準結合
実体化
EXISTS 戦略
NOT IN、<> ALL または NOT EXISTS 述語で使用されるサブクエリーの場合、オプティマイザには次の選択肢があります:
実体化
EXISTS 戦略
導出テーブルの場合、オプティマイザには次の選択肢があります (ビュー参照および共通テーブル式にも適用されます):
導出テーブルの外部クエリーブロックへのマージ
導出テーブルを内部一時テーブルに実体化
次の説明では、前述の最適化戦略について詳しく説明します。
サブクエリーを使用して単一のテーブルを変更する UPDATE ステートメントおよび DELETE ステートメントの制限は、オプティマイザが準結合サブクエリーまたは実体化サブクエリーの最適化を使用しないことです。 回避策として、サブクエリーではなく結合を使用する複数テーブルの UPDATE ステートメントおよび DELETE ステートメントとしてリライトしてみてください。