[英]how to handle large sets of data with PHP?
我的Web应用程序允许用户导入excel文件,并将文件中的数据写入mysql数据库。 问题是,当excel文件有很多条目,甚至1000行时,我收到一条错误消息,说PHP内存不足。 读取文件时会发生这种情况。 我在php.ini文件中为PHP分配了1024MB。
我的问题是,如何在PHP中导入如此大的数据。
我正在使用CodeIgniter。 为了读取Excel文件,我正在使用这个库。
解决了。 我使用CSV而不是xls。 我可以在几秒钟内导入10,000行数据。 谢谢大家的帮助。
正如其他人所说,1000条记录并不多。 确保您一次或一次处理记录,并且在完成该行或重用变量后,每次迭代使用的变量都超出范围。
如果您可以通过将excel文件导出到csv来避免处理excel文件的必要,那会更大,因为那么您就不需要这样的库了(它可能有也可能没有自己的内存问题)。
如果需要,不要害怕增加内存使用量,这可以解决问题,有时购买内存是最便宜的选择。 而且不要让1 GB吓到您,对于这样一个简单的任务来说,这是很多事情,但是如果您有足够的内存,而这正是您需要做的,那么目前它已经足够了。
另外,如果您使用的是旧版本的PHP,请尝试更新到PHP 5.4,它比以前的版本处理内存要好得多。
而不是一次插入一个循环。 一次插入100行。
你总是可以跑
INSERT INTO myTable (clo1, col2, col2) VALUES
(val1, val2), (val3, val4), (val5, val6) ......
这样,网络事务数将减少,从而减少资源使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.