2013-08-20 243 views
0

我有一個SQL ...這是一個「選擇」。我無法顯示它,但它有5個聯合和許多聯接(內部和左側)。我還創建了所有必要的索引。在本地機器上,花費少於一秒(〜0.5秒)的時間來獲得結果。但在服務器上執行的時間非常長。 本地機器和服務器上的數據庫是相同的。我最近拋棄了服務器數據庫並在本地機器上恢復它。 大約35分鐘前,我啓動了一個「解析」這個SQL,它仍在運行。另外,我在過程列表中看到了「複製到tmp表」標籤。 所有表格都經過優化。我使用MyISAM和InnoDB引擎進行了測試。 服務器負載平均小於1,MySQL也不負載。查詢執行非常緩慢

這可能很重要 - 雲服務上的服務器。我無法訪問雲統計信息 - 只需使用服務器即可。

你能告訴我什麼?

+0

解釋需要35分鐘嗎? Google MySql解釋緩慢。 –

+0

如果解釋需要35分鐘,則說明您的服務器或與服務器的連接存在重大問題。 –

+0

你可以顯示查詢並更改表名/字段等嗎? – JsonStatham

回答

0

我找出原因。 正如我之前所說(在評論中),我爲每個子查詢都做了EXPLAIN,並注意到與本地計算機上的相同EXPLAIN存在一些差異(針對5個子查詢中的2個)。 它通過創建附加索引來解決。 不同的機器 - 不同的結果。我預計這會有些不同,但我甚至無法做到解釋。這很奇怪。只幫助部分EXPALIN。

謝謝大家。