【发布时间】:2017-01-13 04:52:50
【问题描述】:
我正在尝试读取包含 500 000 行和 81 列的 CSV 文件并将其插入数据库。 CSV 大小为 160 MB
以下是我的代码
$file = fopen($path, 'r');
while (($line = fgetcsv($file)) !== FALSE) {
}
它工作大约 1 小时,访问大约 100 000 条记录,然后停止处理并显示错误“连接已重置”。我尝试增加 PHP 执行时间限制和内存限制,但这不是一个有效的解决方案。
我可以从特定行开始读取 CSV 而无需遍历之前的行吗?
【问题讨论】:
-
也许你应该创建一个批处理程序。
-
它可以在linux服务器上运行吗?
-
类似this
-
我已经从你之前的问题中编辑了十万。请使用通用度量而不是印度语。
-
由于您使用的是 csv,因此您可以使用类似于以下的函数获取 csv 的一部分:stackoverflow.com/posts/22669242/revisions 我不知道它是否对您有很大帮助,但它没有看起来没那么高效。但它可能对你有用。
标签: php laravel-5.3