0

こんにちは、私はこのようなクエリを持っています

      SELECT (SELECT CSN FROM apps as b WHERE 
         a.key1=b.key1 AND a.key2 = b.key2  AND b.seq=MAX(b.seq) LIMIT 0,1) AS CSN,
         a.key1
FROM apps  as a GROUP BY key1, key2 

EXPLAIN を使用すると、タイプが範囲で、エクストラが「グループ化にインデックスを使用」であることがわかります。この計画は、350,000 行のテーブルで完了するのに 10 秒かかります。ただし、4 秒しかかからないこともあり、実行計画は type: index および extra: using where です。

問題は、計画が 1 番目で 2 番目になると、なぜこのようなことが起こっているのかということです。

4

1 に答える 1

0

わかりました。InnoDB 統計はおそらくオフでした。Analyze tableを呼び出して統計を更新したところ、低い数値に戻りました。

于 2013-08-29T09:40:17.767 に答える