2016-05-11 7 views
0

以下のクエリをMySQLサーバーに作成しました。同じサーバー、同じクエリ、なぜ異なるクエリ実行時間が得られましたか?

select ORDER_ID,CUSTOMER_ID,PRICE,AMOUNT,ITEM_ID,ORDER_TIME 
from MY_ORDER order by ORDER_ID desc limit 10000; 

ORDER_IDがテーブルの主キーです。

通常、そのクエリを実行するのに約20msec(フェッチ時間は含まれません)です。 しかし、いつかは60ミリ秒以上かかりました。

私の質問は: 同じクエリ、同じサーバー、同じスキーマで、そのような遅い実行の理由はいつかなることがありますか?あなたがORDER_ID、CUSTOMER_IDに索引を作成する必要が

答えて

-1

は、

+0

私はこれがどのように求められていることと関係があるか分かりません。 –

0

なぜ異なる実行時間をITEM_ID? の可能性があります。理由...

テーブルInnoDBはありますか?またはMyISAM?

このクエリは、100ブロックのデータにヒットする可能性があります。 InnoDBを使用していると仮定すると、innodb_buffer_pool_sizeの大きさはどれくらいですか?それが100ブロック(1〜2MB)よりはるかに大きくない場合は、他のプロセスが実行され、ブロックがキャッシュから外れてディスクからのリロードが必要になることがあります。このようなI/Oは、キャッシュからの読み取りよりも大幅に遅くなります。

おそらく1つの行を挿入して、そのテーブルの別の操作が行われましたか? InnoDBは、複数のスレッド(接続)が同じテーブルと通信できるようにすることは非常にうまくいきますが、時間がかかることがあります。

関連する問題