1

在我的公司,我使用一个程序读取 CSV 文件并将数据插入数据库。我遇到了麻烦,因为它需要一次插入大量数据(最多 10,000 行)。起初,我让它循环并一次插入每条记录。这很慢,因为它调用了一个插入函数 10,000 次......接下来我尝试将它组合在一起,以便通过连接 SQL 调用一次插入 50 行。我曾尝试一次将 SQL 调用分组为最多 1,000 行,但它仍然太慢。

我必须做的另一件事是更改数据。客户提供了一个包含用户名和密码等数据的电子表格,但有时用户名是相同的,所以我通过在末尾添加一个数字来更改它们。即JoDoe,JoDoe1。有时情况是没有密码或用户名,所以我必须生成一个。我提出这个问题的原因是我读到使用 LOAD DATA INFILE 可以非常快地读取文件并将其放入表中,但我需要在进入表之前对其进行编辑。

它将在 120 秒后超时,并且在那段时间内未完成的内容将作为全 0 插入。我需要加快速度,这样它就不需要那么长时间了。我不想更改时间限制,因为这是公司的事情。将多行 CSV 文件插入数据库的有效方法是什么?

4

1 回答 1

0

LOAD DATA INFILE可以在加载数据时执行许多预处理操作。这可能就足够了。如果没有,请运行 PHP 脚本以从一个 CSV 文件处理到另一个临时 CSV 文件,并随时进行编辑。然后LOAD DATA INFILE在新创建的文件上使用。

于 2013-08-08T21:15:29.350 回答