猿问

如果 一个用户A 每天充值了2次 但是只统计1次但是还要计算出他的总金额 要如何实现 ?

目前用的方法 是 先查询出所有的数据,再进行对比是不是同一个用户,是不是同一天,

这样数据少的时候 还行 !数据量以上千基本就卡死了!

qq_陌路朋友_0
浏览 1687回答 1
1回答

霸王龙不只会php3

要看是要做到实时的?还是统计之前一天的?实时的,需要有一个表专门记录总金额,每次充值,事务性操作增加到总金额里,消费也事务性操作从总金额减去。看你的描述应该是要按天统计,这个就需要分步骤去做:首页按当天日期时间戳,得到最早的一个id(或者在一个地方记录下这个id),这样就不用扫描全表,只需要从某个id之后开始扫描;知道id后就可以分页按用户排序去拿数据并汇总,不要一次全拿出来,也不要用group。实际在汇总时还会遇到一个用户在两个页里,那就每两页汇总一次。这是单进程去跑。也可以多进程跑,按用户分进程。
随时随地看视频慕课网APP
我要回答