sql >> データベース >  >> RDS >> Mysql

相関サブクエリまたは参加のどちらが高速ですか?

    まず、相関サブクエリは実際には一種の結合です。どちらが最良の実行計画を生み出すかについての黄金のルールはありません。パフォーマンスに関心がある場合は、さまざまなフォームを試して、何が最適かを確認する必要があります。または、少なくとも、その決定を下すために実行計画を見てください。

    一般に、私はいくつかの理由で相関サブクエリを避ける傾向があります。まず、ほとんどの場合、相関関係なしで記述できます。次に、多くのクエリエンジンは、それらをネストされたループ結合に変換し(インデックスを使用しますが)、他の結合戦略の方が優れている場合があります。このような場合、相関するサブクエリにより、クエリを並列化することが困難になります。第3に、相関サブクエリは通常、SELECT句またはWHERE句のいずれかで使用されます。すべてのテーブルをFROM句に含めるのが好きです。

    ただし、MySQLでは、相関サブクエリが最も多いことがよくあります。 クエリを実行する効率的な方法。これは、INでサブクエリを使用する場合に特に当てはまります。 句。したがって、黄金のルールはありません。




    1. MySQL-INSERT、VALUES、およびSELECTを組み合わせますか?

    2. データベースの日時から現在の日時を減算する方法-PHP

    3. doctrine2とgroup_concat

    4. MySQL:2つの結果セットの違い