2009-07-15 16 views
3

"order by"のクエリではMySQLに多くの時間がかかります。 SHOW PROFILESは、ソート処理で時間がかかることを示します。ソート時間を短縮する設定/回避策はありますか?"order by" mysqlにあまりにも多くの時間を要する

+0

どのくらい時間がかかりますか、どれくらい時間がかかると思いますか? –

+3

うわーそう多くの答えは、まだ同じことを示唆している... –

+0

その3から4秒とそれはあまりにも私は思う – Jinesh

答えて

7

、1追加:

を「いくつかのケースでは、MySQLはORDER BY句を満たすために、インデックスを使用することができます余分なソートを行わず"

編集:

+0

私はインデックスを使用していますが、まだMySQLはファイルの並べ替えを使用していない – Jinesh

5

ご注文のフィールドに適切なインデックスを追加すると、そのトリックを行う必要があります。

1

ソート結果を返す速度を向上させるには、結果の並べ替えを行う列にインデックスを追加することができます。あなたがすることにより発注しているフィールドにインデックスを持っていない場合は

0

クエリがゆっくり実行されているテーブルがインデックス化されていないことであるかもしれない理由は、(MySQLのドキュメントでsection on ORDER BY optimizationから。)そのような場合は、適切なインデックスを作成します。

1
ALTER TABLE `tablename` ADD INDEX `indexname` (`columnname`); 

一般に、indexnameはcolumnnameと同じです。

0

あなたは私には、次の2つのコマンドの出力を知らせることができます: ショーは、それはほとんどすべての行が検討される必要があると考えている場合、MySQLはインデックスを使用しません

「あなたの選択クエリを」説明テーブルtbl_name を作成しますカバリング指数がない限り。 1つのテーブルにつき1つのインデックスしか使用されていないので、そのインデックスの一部であるカラムによってまったく使用されていない場合は、それを並べ替えるようにしてください。

関連する問題