2016-04-15 128 views
-1

我們有一個範圍查詢,我們一次執行幾個月之間的日期。儘管我們使用的邏輯類型在我們使用不多於一天的日期範圍時執行得更快。計劃是用多個日期範圍執行查詢,然後在應用程序級別進行計算。在MYSQL中運行並行查詢

所以我想知道如果有人在這裏可以建議如何在MYSQL中並行運行所有這些查詢。因爲如果我在事務中執行它,我認爲它會一個接一個地執行,所以如果一個查詢需要1秒並且我們發送60個查詢,它將在60秒內返回,這是不高效的。在一個連接中並行執行所有30個查詢的任何方式,還是我們需要爲它們創建單獨的連接? 範圍可以是這樣的

(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

I/O在這裏不是問題,我使用的是4000k iops驅動器,並且mysql可以很好地調整。除非你能推薦某些可能涉及的參數。 –

回答

0

假設你正在使用PHP

您可以使用multi_query這一點,看到這個link

一般來說,雖然,它其實並不重要,如果你做至少如果數據庫與網站託管在同一臺服務器上,則連續60次查詢。響應時間將如此之快,你不會注意到一個區別。如果數據庫託管在其他地方multi_query可能是一個好主意