2014-02-14 27 views
0

我在寻找建议来处理以下情况。需要提醒:如何处理大量数据来汇总php中的报告

我有报告显示产品清单;每个产品都有多次查看过的次数以及订单被请求的次数。

寻找DB我觉得它不好。有参加三个表:

  • product
  • product_view
  • order_item

执行下面的SELECT查询

select product_title, 
(select count(views) from product_view pv where p.pid=pv.pid) as product_view , 
(select count(placed) from order_item o where p.pid=o.pid) as product_request_count 
From product p 
order by product_title 
Limit 0,10 

该查询返回10条记录成功;但是,加载非常耗时。另外,当用户使用导出功能时,大约会返回2,000,000条记录,但是我得到一个内存耗尽错误。

我无法找到这ZF2最合适的解决方案[PHP + MYSQL]

有人可以推荐一些好的策略来应对?

回答

0

如何使用后台进程?它不一定是纯粹的ZF2。

一旦后台进程完成,系统将通过电子邮件通知用户导出完成。 :)

+0

我想到了这一点,但与背景,报告将不会反映最新的更新...并有一些原因通过http下载50 MB [强制下载选项]也给我的挑战... – user269867

0

您可以:

  • 呼叫set_time_limit(0)国米的执行时间限制。
  • 循环遍历整个结果集合,例如1000条记录,并依次向用户输出结果。
+0

只是想了解你是指定义块并将它们下载到多个Excel表单中? – user269867

+0

不可以。您可以按块处理您的数据,但输出是单一的。 – akond