首頁  >  文章  >  後端開發  >  非同步 - PHP大量資料資料導入

非同步 - PHP大量資料資料導入

WBOY
WBOY原創
2016-08-04 09:21:441363瀏覽

現在有個需求,要把excel數據導入到數據表中,但數據量比較大,最多的時候一次要導入幾十W條數據,導入的數據不是直接寫db的,是走接口的,接口一次性愛最多處理1000條,耗時比較長,現在有個想法,想把這個做成任務式的導入,每次導入就是創建一個導入任務,把所有任務做成隊列,依次完成導入任務,有什麼好的方法和建議

回覆內容:

現在有個需求,要把excel數據導入到數據表中,但數據量比較大,最多的時候一次要導入幾十W條數據,導入的數據不是直接寫db的,是走接口的,接口一次性愛最多處理1000條,耗時比較長,現在有個想法,想把這個做成任務式的導入,每次導入就是創建一個導入任務,把所有任務做成隊列,依次完成導入任務,有什麼好的方法和建議

你的想法很好,可惜PHP不適合做這種事情,建議用Java之類的語言來實現你的想法。

PHP有了任務,直接把任務參數提交到資料庫。

Java在後台每100ms存取一次資料庫,看看有沒有任務,有就處理。

php預設30秒 ;你可以加個set_time_limit(99999999);
幾十萬資料 應該是不要1分鐘就倒完了

Crontab + task list 做後台非同步任務,很適合這種場景

  1. mysql load data infile 將資料快速匯入到臨時表

  2. php守護程式分批將資料往介面同步(或crontab寫入定時任務)

php拼接成sql,直接mysql後台source導入

最好是分段導入,不要一次導入

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn