JOIN と WHERE: データベース クエリはどちらが速いですか?
データベース クエリの世界では、速度が非常に重要です。 Document と DocumentStats など、外部キーによって 2 つのテーブルがリンクされている場合、JOIN 句と WHERE 句のどちらを使用した方がデータの取得が速いか疑問に思うかもしれません。
質問:
次のクエリを考えてみましょう:
SELECT * FROM Document, DocumentStats WHERE DocumentStats.Id = Document.Id AND DocumentStats.NbViews > 500
INNER JOIN を使用した代替クエリは:
SELECT * FROM Document INNER JOIN DocumentStats ON Document.Id = DocumentStats.Id WHERE DocumentStats.NbViews > 500
どちらのクエリがより速く実行されますか? それとも同等ですか?
答え:
理論的には、両方のクエリは次のように同等に高速に実行されるはずです。クエリ オプティマイザーは実行計画を最適化します。ただし、実際には、データベース エンジンは、特により複雑な操作の場合、どちらかのクエリに対してより良い実行プランを生成する可能性があります。
つまり、データベース エンジンで両方のクエリをテストして、どちらのパフォーマンスが優れているかを判断するのが最善です。 。ただし、一般に、単純なクエリでは同等の速度が期待できます。
以上がJOIN と WHERE: 外部キー関係を含むデータベース クエリではどちらが高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。