您好,匿名用户
随意问技术百科期待您的加入

如何快速统计出某段时间内的记录总数

0 投票

我们经常在项目中遇到的需求就是计算在一周内的记录总数,而且这个数目是需要在列表页出现的,所以用SELECT COUNT显然不合适。

但是如果你用缓存来做的话,因为这个值是根据你的当前时间不断在变的,比如用户在下午14:10来访问这个页面,那么我们要计算的就是从7天前的14:10到现在这段时间内的记录总数。这是不可能缓存的,我不知道各位是怎么设计的。

我有一个思路就是,还是用SELECT COUNT来统计,但是把它缓存住,一个小时更新一次。看起来解决的还可以,不知道各位有什么更好的思路,比这个准确度更高的。

用户头像 提问 2012年 12月1日 @ Shen 上等兵 (318 威望)
分享到:

1个回答

0 投票

你要不创建一个trigger和一张表用来记录行数,如果你的入数据库的量不大的话。 比如
ON INSERT UPDATE counter SET table_name_count = table_name_count + 1 ;
然后前台读取的时候从那张表读就是了。

不过也要看你用的是什么SQL了, MySQL的 MyISAM 对这个问题是做了优化的; 就直接SELECT COUNT就是了。

用户头像 回复 2012年 12月1日 @ Sagittarius 上等兵 (289 威望)
提一个问题:

相关问题

0 投票
1 回复 125 阅读
+1 投票
1 回复 55 阅读
0 投票
1 回复 38 阅读
0 投票
1 回复 122 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...