2012-04-19 62 views
2

建立到MySQL服務器的遠程連接(使用MySQL命令行前端)後,我開始執行一個非常長的存儲過程(我估計它可能需要超過7個小時),但在它的中間我收到錯誤:如果在此期間連接丟失,查詢是否正確?

ERROR 2013(HY000):查詢

過程中丟失連接到MySQL服務器,所以我想,我查詢了超時。此過程僅將一些值存儲在 之前爲空的表格中。

收到此錯誤並重新建立到服務器的連接後,我可以 驗證該過程以某種方式繼續執行。一段時間後,我還驗證了 以前的空表現在有一些行。

我的問題是,即使 連接丟失,我是否可以相信該過程的執行是正確的?

+3

7小時是一個超長時間。你確定你不能優化它嗎? – 2012-04-19 16:19:01

+0

@SoboLAN - 它可能是遠程服務器的網絡延遲,而不僅僅是緩慢的SQL。儘管如此,這種情況聽起來並不理想。 – 2012-04-19 16:20:22

+0

我想要做的事情需要我很長時間:我有一個300000行和8列的表,如果我有(1,2,3,4,5)和(1,2,5,4) ,3)在表格中,那麼我只想保留其中一行並消除另一行。 – user1261701 2012-04-19 16:32:57

回答

0

首先,7小時似乎太長。如果不兼容的結果困擾你,你可以在完成N個查詢時添加一些保存點,並將N個查詢合併爲單個事務。然後,每當你的程序異常停止,你可以加載你上次保存的點。

我也建議你可以嘗試選擇源數據到你的本地電腦,並使一些腳本來獲得結果,然後將其上傳到目標表。這將減少數據庫服務器的開銷。

相關問題