我有一个甲骨文数据库,其中存储了大量的生物识别数据,如HRV和ECG。我需要在excel表格中为每个用户显示这些数据。但是这些数据是如此之大,即使对于一个用户来说,我们也得到了超过10万条记录。目前有100个用户。
我所做的是:
- **uid 1/ uid/2 uid/3 ----------- nth**
- data |data |data |
- data |data |data |
- **|**
- nth
问题:
PHP需要1.5GB的RAM并将数据存储在数组中,并将其发送到与phpexcel交互的函数中,但是这个库需要3-4个小时,然后我得到“致命内存限制”错误。我的系统只有2GB内存。
我应该采取哪些步骤来优化我的代码,以处理这种大小的数据,并以excel格式显示相同的信息,或者我需要增加RAM?
发布于 2012-12-22 04:33:11
考虑只使用PHP来排除包含结果数据的某种Excel可读的分隔文件(CSV)。(这样的想法是,您不会通过PHP编写Excel -因为您正在经历的限制)。
您可以通过类似Powershell的方法请求php生成的文件,然后让Powershell或其他脚本选择将csv文件直接打开到Excel中,然后保存为xlsx。
或者让命令行php执行“system”调用并执行脚本步骤,直接将csv打开到Excel中,然后将其保存为xlsx。
发布于 2012-12-22 04:34:23
如果单个用户的数据是巨大的,您正在使用这么多的内存来保存这些数据,请尝试以批处理模式用excel编写该数据。它将节省您的内存使用。
https://stackoverflow.com/questions/14000050
复制相似问题