什么是处理像'thread_views'这样的大表的最佳方式?

时间:2010-12-13 11:09:47

标签: database statistics

我正在努力向我的网站添加一些统计信息。例如:'今日/周/年最常查看的主题'。

我需要一个表来保存与用户相关的每个视图(以避免同一用户添加许多视图)和线程,以及时间戳。

但那将是一个大表(成排)。这是要走的路吗?

1 个答案:

答案 0 :(得分:0)

答案取决于许多因素,例如线程数,视图数,硬件,典型负载,读/写比,所需精度等等。

在不知道具体方案细节的情况下,对您的问题的合理答案是创建您所描述的表格:

thread_views(
   thread_id references thread(thread_id)
  ,user_id   references user(user_id)
  ,timestamp
  ,primary key(thread_id, user_id)
) 

上述方法为典型场景提供了灵活性和足够好的性能。

我最近回答了两个类似的问题,您可以通过这些问题来了解一些想法。

Count article commentsCount visitor hits per day

最后一点是,许多主要数据库都包含聚合数据的工具。这些工具可以让您拥有标准化的数据模型,同时通过预先计算的统计表获得大部分好处。