2016-04-15 14 views
-1

私たちは、数か月の間に一度に実行する範囲クエリを提供しています。私たちが持っているロジックの種類は、1日以上の日付範囲を使用すると高速に実行されます。複数の日の範囲でクエリを実行し、アプリケーションレベルでクエリを実行することを計画します。MYSQLの並列クエリの実行

ここに誰かがMYSQLでこれらのすべてのクエリをどのように並行して実行するかを提案できるのだろうかと思いました。私はトランザクションでそれを行うと、1つ1つのクエリが1秒かかり、60のクエリを送信している場合、それは効率的ではない60秒に戻ってくるので、1つずつ行うと思います。 1つの接続で30のクエリをすべて並列に実行する方法や、すべてのクエリを個別に作成する必要がありますか? 範囲は、あなたがあなたがあなたが作る場合、それは本当に問題ではありません、しかし一般的には、このlink

を参照してください、このためmulti_queryを使用することができますPHP

を使用していると仮定すると、この

(date between '2010-02-25 ' and '2015-03-26') 
(date between '2010-03-25 ' and '2015-04-26') 
(date between '2010-04-25 ' and '2015-05-26') 
(date between '2010-05-25' and '2015-06-26') 
+0

PHPを使用していますか? – Jester

+0

あなたがそれらを並行して実行することができれば、遅い部分は一致/照会が行われなければならないデータを取り出すことです。それらがシーケンシャルまたはパラレルであっても、それらはすべて同じデータソース(ハードドライブ)から引き出されます。あなたの問題の中核は、遅いI/Oデバイスにあります。これは、MySQLインスタンスを調整して、作業が必要なデータを素早く取得できるようにすることを意味します。 – Mjh

+0

ここでは問題はありませんが、私は4000k iopsドライブを使用しており、mysqlは微調整されています。潜在的に関与する可能性がある特定のパラメータを推奨できない限り。 –

答えて

0

のようにすることができます少なくともデータベースがWebサイトと同じサーバーでホストされている場合は、60個のクエリが連続しています。応答時間は非常に速く、違いが気付かれません。データベースがmulti_query以外でホストされている場合は、良い考えがあるかもしれません。