内部結合を使用するクエリを最適化しようとしていますが、2つの非常によく似たクエリ間のパフォーマンスの違いに戸惑います。2つの内部結合クエリ間の動作の違いを理解しようとしています
私はこれについていくつかの光を放つことを望みます。
テーブルは次のようになります。
集約:
+-recid(key)-+-avg---+
+------------+-------+
歴史:
+-recid(key)-+-value-+
+------------+-------+
目的は、与えられたキーのために、取得することです(のは1234年を想定してみましょう)、平均と値。
私は、私にとって非常に似ているようだ2つのクエリを試してみました:
SELECT a.avg, b.value FROM aggregates a, history b
WHERE a.recid = b.recid
AND a.recid = 1234
は1秒未満で
しかし、
SELECT a.avg, b.value FROM aggregates a, history b
WHERE a.recid = 1234
AND b.recid = 1234
ランを実行する5秒かかります。
これらの2つのクエリは同じ結果を示します。私は、パフォーマンスに大きな違いを理解したいと思います
使用しているdbmsにタグを付けます。異なる製品は異なる方法で最適化されます。 – jarlh
ところで、2つのクエリを別の順序で何度も実行していますか? (冷/ホットデータ) – jarlh
はい、私はそれを試みました、それは非常にreproductible、1つは一貫して他のよりも5倍遅い – Maxime