我有一个大数据集到MySQL(用户,公司,联系人)?约100万条记录。插入大量数据[PHP,MySQL]
现在我需要从导入文件(csv)导入新用户,公司,联系人约100000条记录。我从文件记录了所有三种精华(用户,公司,联系人)的所有信息。 而且对生产我不能使用LOAD DATA(只是没有那么多的权利:()
所以存在应被应用到数据集的三个步骤 - 与现有的DB数据 比较 - 更新(如果我们会发现在前面的步骤东西) - 并插入新的记录
我使用服务器上做这件事的PHP我可以看到两种方法:
- 读取来自所有数据。文件,然后使用这个BIG阵列并应用这些步骤。
- 或读取线通过从文件线和穿过步骤
哪种方法更有效的每行? CPU,内存或时间使用情况
我可以使用事务吗?否则会减慢整个生产系统?
谢谢。
我不认为你需要找到最有效的方法来做到这一点。对于100K记录,最多需要20 - 30秒,并且您可能不需要再次插入这些记录... –
你在开玩笑吗?我已经实现了第一种方法,它需要很多时间,我敢肯定,你无法想象它是如何工作的;) – user1016265