ホームページ >データベース >mysql チュートリアル >LEFT OUTER JOIN と NOT EXISTS: どちらの SQL 句がより優れたパフォーマンスを提供しますか?
テーブル B に存在しないレコードをテーブル A から取得する場合、SQL Server は 2 つのオプションを提供します。 LEFT OUTER JOINそして存在しません。 SQL Server の ANSI 傾向により LEFT OUTER JOIN の方が効率的であると一般に考えられていますが、各演算子の特定のパフォーマンス特性を理解することが重要です。
LEFT OUTER JOIN はすべてをフェッチします。テーブル B に対応するエントリがあるかどうかに関係なく、テーブル A のレコードを検索します。次に、結合に基づいて一致しないレコードをフィルタリングします。 基準。この徹底的なプロセスは、大きなテーブルや複数の結合条件を処理するときに大量のリソースを消費する可能性があります。一方、
NOT EXISTS は、「短絡」メカニズムで動作します。一致するレコードが見つかると、検査中の現在のレコードが直ちに除外されます。このアプローチは、次の場合により効率的です。
一般的に、存在しないか、サブクエリが多数の一致するレコードを返すことが予想される場合は、効率性の観点から EXISTS が推奨されます。ただし、次の点に注意することが重要です。
以上がLEFT OUTER JOIN と NOT EXISTS: どちらの SQL 句がより優れたパフォーマンスを提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。