php进程 - 一个接一个 - 模拟线程

时间:2010-10-11 01:25:01

标签: php db2

我有一个报告生成功能。 导出到csv或txt。 对于每个月,每行将有25000条记录,共55列。 每年将超过300000! 我尝试添加内存限制,但我不认为它的好!无论如何现在它的128M。

我的期望

我会将用户选择的日期范围拆分为25天或30天。 我将运行25天的获取数据,然后编写csv。 然后获取下一个25000,写下来。像这样。

我怎样才能达到这个目标?

使用函数$result= fetchRecords();

获取am

为了编写csv,我将这个$ result数组传递给查看页面,并通过逗号进行循环和分隔打印。

因此在控制器中它将是$template->records=$result;

如果我在for循环中执行此操作

for(){
  $result= fetchRecords();
  $template->records=$result;
}

我不想这会起作用。

怎么做?执行fetch.write然后获取然后写入。

你能否建议更好的方法在PHP中实现它,将其保留在内存限制中?

1 个答案:

答案 0 :(得分:0)

我从db获取一个巨大的数据到一个数组。然后再循环这个数组写入csv或text.That真的杀死了内存。

现在,当我从db获取数据时,在同一个循环中写入文件。 没有使用数组。很大的不同。

PHP可以更好地导出到csv或文本。 PHP真的是一门很棒的语言。

现在正在下载25 mb的csv。 :)我打破了excel ..因为它超过了65550条记录。:))

对我来说绰绰有余。

所以吸取的教训是 - 不要将数组用于这种类型的大数据存储。