php - 如何实现MySQL : :"LOAD DATA LOCAL INFILE" in PHP?

标签 php mysql database load

我们必须执行进口程序。 一个 CSV 文件的数据量约为 100 MB(文件已驻留在服务器上,因此无需上传)。

关于在将数据导入数据库时​​是否实现批量“LOAD DATA LOCAL INFILE”或逐行“INSERT/REPLACE”的任何建议。

我已经检查过“LOAD DATA LOCAL INFILE”的工作速度比逐行导入快得多,但是逐行导入可以更好地控制重新导入/更新等。

从某种意义上说,我们是否可以从这两种实现中受益,即第一个实现的速度和第二个实现的控制?

热烈欢迎任何建议或完全不同的方式来实现导入过程、代码片段、数据库技巧。

谢谢!

最佳答案

没有。您要么完全控制该过程并让 PHP 执行插入,要么全速控制并让 MySQL 客户端库处理它。

您可以做的是将其加载到中间表中,然后执行从该表中进行选择并将其插入实际表中的查询。这将允许您对数据进行批量操作。

关于php - 如何实现MySQL : :"LOAD DATA LOCAL INFILE" in PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016560/

相关文章:

php - MySQL 和 CI 的 UTF8 数据问题

PHP mySQL 查询返回单个字段作为 2 元素数组

php - laravel destroy 只是删除最后添加的内容

mysql - 如何在 3 个关联表中获取最大日期的字段值

c# - 正则表达式 - 增量替换

javascript - 如何使用 JavaScript 隐藏和显示多个 Div

php - Netbeans 7.3 上的 HTML5 无法与 chrome Netbeans Connector 集成

php - PDO 插入不会抛出错误或插入表单数据

javascript - NodeJS客户端中MongoDB中的BulkWriteError

mysql - 锁总数超过MySQL中的锁表大小