我有一个 oracle 数据库,其中存储了大量的生物特征数据,如 HRV 和 ECG。我需要在 excel 表中为每个用户显示这些数据。但是这个数据是如此之大,即使对于单个用户,我们也会获得超过 1,00,000 条记录。目前有100~个用户。
我正在做的是:
- 我使用命令行执行 CRON 作业,这是我在 Zend 框架中开发的。
- 我确保这个 CRON 不重叠。
- 我从 oracle 数据库中为每个用户一一获取所有数据,然后将其存储在一个数组中。
当我获取所有用户的数据时,我正在使用phpexcel库生成 excel 表。
Excel表的结构
- uid 1/uid/2 uid/3 ----------- 第 n 个
- 数据 |数据 |数据 |
- 数据 |数据 |数据 |
- |
- 第n个
问题 :
PHP 占用 1.5 GB 的 RAM 并将数据存储在数组中并将其发送到与 phpexcel 交互的函数,但这个库需要 3-4 小时,然后我得到“致命:内存限制”错误。我的系统只有 2 GB RAM。
我应该采取哪些步骤来优化我的代码以处理这种大小的数据并以 excel 格式显示相同的信息,或者我需要增加 RAM?