请问大批量数据处理,如何分割?

大家好,数据库有10000条订单,每天需要对订单进行各种计算,语言用的php+mysql。因为之前设计的时候没有考虑到这么多的订单数据,所以就用的很常规的全部写入更新到数据库后返回结果。结果现在结算的时候卡在页面那边,要等好久才能完成,有时候PHP超时会返回空白页面。请问现在有什么办法可以让PHP不超时?

是否可以将订单分割成100一组进行处理?

请问该如何实现这种100一组处理完毕,等待几秒,进行下一组的处理?

谢谢大家!

阅读 4.9k
7 个回答

建议后台异步跑批计算,将结果存储,然后前端读取结果


set_time_limit(0);//防止超时

为订单加上个status位标记是否已经处理,开启后台进程定时跑订单任务

做统计表:定时统计订单表写入统计表或者redis统计定时回写统计表

新手上路,请多包涵

mysql事务处理。

  1. 后台异步计算统计数据,存储起来,显示的时候直接读取

2.多进程处理,再合并

新手上路,请多包涵

redis+shell后台脚本吧

新手上路,请多包涵

数据直接存储到redis,前台也从redis来读取,提升吞吐效率,定期将redis数据持久化到mysql如何

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题