我有一個大數據集到MySQL(用戶,公司,聯繫人)?約100萬條記錄。插入大量數據[PHP,MySQL]
現在我需要從導入文件(csv)導入新用戶,公司,聯繫人約100000條記錄。我從文件記錄了所有三種精華(用戶,公司,聯繫人)的所有信息。 而且對生產我不能使用LOAD DATA(只是沒有那麼多的權利:()
所以存在應被應用到數據集的三個步驟 - 與現有的DB數據 比較 - 更新(如果我們會發現在前面的步驟東西) - 並插入新的記錄
我使用服務器上做這件事的PHP我可以看到兩種方法:
- 讀取來自所有數據。文件,然後使用這個BIG陣列並應用這些步驟。
- 或讀取線通過從文件線和穿過步驟
哪種方法更有效的每行? CPU,內存或時間使用情況
我可以使用事務嗎?否則會減慢整個生產系統?
謝謝。
我不認爲你需要找到最有效的方法來做到這一點。對於100K記錄,最多需要20 - 30秒,並且您可能不需要再次插入這些記錄... –
你在開玩笑嗎?我已經實現了第一種方法,它需要很多時間,我敢肯定,你無法想象它是如何工作的;) – user1016265