我们的网站上有一个新闻帖子数据库,有大约3000行(每个帖子一个,可以追溯到2001年)。每个都有一个unix时间戳,表明它的发布日期。
我希望有一个存档页面,显示该月份的帖子数量摘要。按年分组,然后按月分组
2011
January (13 posts)
February (25 posts)
2012
March (30 posts)
等。
最有效的方法是什么?我之前有一堆代码,有两个for循环(年份,然后是月份),它会查询每个月的数据库并计算当时发布的帖子数量。毫不奇怪,它非常缓慢。
有关如何对数据进行分组并避免每个月访问数据库的任何提示。
答案 0 :(得分:3)
最好使用数据库中的聚合表来处理,以便每月保存统计信息。您可以拥有一个包含3列的简单表格。
Year | Month | Count
每天运行一个简单的聚合查询,计算该月的帖子数(使用过滤器)并更新上表。它会快速而干净。