【发布时间】:2013-08-07 19:32:17
【问题描述】:
我有一个程序用于读取 CSV 文件并将数据插入数据库。我遇到了麻烦,因为它需要能够一次插入大记录(最多 10,000 行)数据。起初,我让它循环并一次插入每条记录。这很慢,因为它调用了一个插入函数 10,000 次......接下来我尝试将它组合在一起,以便一次插入 50 行。我认为这种方式将不得不更少地连接到数据库,但它仍然太慢了。将多行 CSV 文件插入数据库的有效方法是什么?另外,我必须在数据进入数据库之前编辑一些数据(例如,如果两个相同,则在用户名中添加 1)。
【问题讨论】:
-
使用LOAD DATA INFILE 命令
-
@MikeW 你从我的键盘上取出了单词。文档的第一行是“LOAD DATA INFILE 语句以非常高的速度将文本文件中的行读取到表中。”。如果你把它作为一个答案,我会支持你。
-
不幸的是,我认为 LOAD DATA INFILE 命令不起作用,因为我必须在一些数据进入数据库之前对其进行编辑。感谢您的建议,但还有其他想法吗?
-
@user1423793 需要做什么编辑?如果正确设置命令,LOAD DATA 可以在加载时重新格式化和处理数据。也许如果您在问题中发布更多信息,我们可能会更加专注。
-
我必须更改一些内容,例如如果两个相同,则在用户名中添加 1,或者如果没有提供用户名或密码,则生成用户名或密码。
标签: php mysql database-connection sql-insert