【发布时间】:2012-09-24 00:16:26
【问题描述】:
我在 csv 文件中有大量记录(大约 40,000 条)要更新到数据库表中。
我知道如何编写代码 (PHP) 来更新记录,但我担心数据量太大。
我应该如何处理一次更新大量记录?
【问题讨论】:
-
我刚刚在一个表中插入了大约 300,000 行。不需要太多时间。尝试使用 HeidiSQL 的表/数据库管理器。
我在 csv 文件中有大量记录(大约 40,000 条)要更新到数据库表中。
我知道如何编写代码 (PHP) 来更新记录,但我担心数据量太大。
我应该如何处理一次更新大量记录?
【问题讨论】:
你可以使用它。可能对你有帮助
LOAD DATA INFILE 'data.csv' INTO TABLE my_table;
LOAD DATA INFILE 'data.txt' INTO TABLE table2
FIELDS TERMINATED BY '\t';
【讨论】:
遍历 csv 文件中的所有行。将每一行解析为不同的变量以更新数据库。使用正常的 SQL 调用。
唯一不同的是,您可能需要在文件的最顶部添加set_time_limit(0);。这将防止 PHP 超时。
【讨论】:
遵循某种分布式处理流程。有一个分发线程和一些工作线程。分发线程可以从 csv 文件中读取数据,将工作分配给工作池中的空闲工作线程。您可以限制线程池大小,平衡性能和资源使用。而且您已经说过,您知道如何进行更新,因此可以理解工作线程代码。 :) 希望这会有所帮助
【讨论】: