0

「 history 」というテーブルで 17,000 行を返すクエリがあります。主に に基づいて、他のテーブルへの約 15 の左結合がありhistory.id = othertable.primary_idます。

order by history.primary_id DESCクエリを削除すると、非常に高速です。order by history.primary_id DESCMySQLが一時テーブルに書き込むのに約26秒かかるのはいつですか..非常に遅い.

ただし、「order by」が存在するが、結合が省略されている場合は高速です。

一時テーブルに書き込まれるデータが結合に依存している理由がわかりません。クエリが実行された後の時点で、MySQL は 17,000 行が何で構成されているかを既に認識しているのではないでしょうか?

「 EXPLAIN 」によると、私のインデックスはかなりうまく設定されていますが、私の人生では、このクエリをソートすることはできません。1000個の制限を使いたいのですが、ソートできない場合は役に立ちません。一時テーブルを使用しないようにすることはできません。

クエリのスクリーンショットを次に示します。

4

0 に答える 0