2016-08-14 135 views

回答

0

有幾件事你想先檢查。

  • 你在你的PHP錯誤日誌中得到什麼錯誤(超時錯誤,內存不足的錯誤,等...)
  • 什麼錯誤,你在你的MySQL錯誤日誌得到
  • 是您的內核殺死長期運行進程(例如,在extreme resource starvation中)

如果腳本在同一地方停止更新一致,例如,它可能是SQL在該特定語句中的錯誤。因此,請確保您正在檢查mysql返回給PHP的任何錯誤(請參閱處理PDOMySQLi中的錯誤的手冊)。

如果您通過PHP一次運行200K個不同的SQL查詢,它肯定會很慢,因爲您要在每個查詢中擊中SQL解析器,查詢執行和結果提取步驟。有一些更快的替代方案,例如LOAD DATA INFILE,它繞過MySQL中的整個解析器和查詢執行步驟,允許您直接從CSV寫入數據庫對象文件。這對於將大量數據一次加載到數據庫非常有用,非常快速。

+0

最初,它每秒更新6-7行,並且速度連續降低,幾乎爲零。 –

0

你檢查你的錯誤日誌。我想,你說25000原始更新,然後停止。更新時可能會導致一些數據庫行傳遞錯誤。如果您可以逐個檢查更新表,則可以驗證它。

例如:首先更新1-2000,然後更新2000-40000。當更新20000-250000範圍只傳遞錯誤,這意味着你的程序是好的,數據庫條目傳遞錯誤。但塊明智確定,當增加load.it可以幫助你測試你的程序可以處理負載。這是一些測試方法。

您的程序可能會很慢,因爲有大量的數據收集,它也取決於您的計算機或服務器或開發環境的性能。嘗試重新設置因子或優化代碼以提高性能。您也可以嘗試非關係數據庫(mongodb)一段時間,這可能會在處理大量數據時給您帶來好時間。我認爲這可能有助於你解決你的麻煩。

+0

最初它每秒更新6-7行,並且速度連續降低,幾乎爲零。 –