随着时间的增加,订单表里的数据会越来越多,就需要对一个月或者一季度甚至近一年的数据做分析统计,像退款率,支付率,以及订单关联的产品等的相关参数,但是这样一次实时计算带来的后果要么是超时,要么就是内存溢出,求这样问题用php的解决方案。
随着时间的增加,订单表里的数据会越来越多,就需要对一个月或者一季度甚至近一年的数据做分析统计,像退款率,支付率,以及订单关联的产品等的相关参数,但是这样一次实时计算带来的后果要么是超时,要么就是内存溢出,求这样问题用php的解决方案。
对于当天之前的数据,可以每天定时收集处理,存储到数据库中,空间换时间,这样的话实时数据也只是需要查当天的,效率会高很多,对服务器的压力这会大大降低,还可以做一下缓存,防止用户频繁刷新带来的压力
这个问题很宽泛并且本质上和语言没有关系, 但大体来说可以先从这两点着手
设立一个离线库, 你的查询去离线库查, 不要去主库上去查询(是通过导出数据还是做主从取决于你们的具体情况)
对于某些经常需要的数据, 设计一个或者多个数据分析的表, 按照你需求的维度隔固定时间跑一次, 历史数据只要一开始跑完就好, 后面你只需要跑新产生的数据进行分析即可
更进一步的需要引入一些其它工具(比如ES, Hadoop等等), 甚至包括重新设计你们数据分析相关的产品的形态
可以建立一个汇总表,定时将统计到的信息写进汇总表中,后边就直接查询汇总表了,反正统计信息是月或者季度的形式呢
用cli模式跑脚本,不要fpm
循环中使用yield关键字,不产生额外中间变量