经常会遇到这样的业务,用户进入首页之后,显示某排行榜:
总排行 本周 本月 本年 5年来 10年来
开发人员不管三七二十一,直接写一条SQL搞定,随着时间的推移,统计SQL越来越慢,当并发量大了之后,整个系统就快挂了。
这种业务怎么处理。最好是用中间表的方案,查统计结果即可。采用定时任务,将统计结果插入中间表。
实现的时候要注意,全量和增量的问题,何解?
全量的方式,就是用定时任务,统计全部的数据,将结果插入中间表。问题是统计的当时性能不是很好,当然,搞不死系统,不是最优的。
总排行 本周 本月 本年 5年来 10年来
或者在首页显示自系统使用以来的库存周转率等。
开发人员不管三七二十一,直接写一条SQL搞定,随着时间的推移,统计SQL越来越慢,当并发量大了之后,整个系统就快挂了。
这种业务怎么处理。最好是用中间表的方案,查统计结果即可。采用定时任务,将统计结果插入中间表。
实现的时候要注意,全量和增量的问题,何解?
全量的方式,就是用定时任务,统计全部的数据,将结果插入中间表。问题是统计的当时性能不是很好,当然,搞不死系统,不是最优的。
增量的方式,推荐的方式,将数据分为死(不会改变)的数据,活(会改变,只是影响统计结果的改变)的数据,第一次统计初始化的时候是所有的,然后采用时间或者其他能区分不变动和变动的数据的条件,做到增量统计。
举个例子:现在有个查话费的系统,要统计自使用这个电话号码以来所有的话费。增量的方式就是,今天之前的话费总额已经放在中间表了,只需要查今天使用的话费,然后与之前的相加,修改中间表即可。