【问题标题】:Whats the best way to deal with big tables like 'thread_views'?处理像'thread_views'这样的大表的最佳方法是什么?
【发布时间】:2010-12-13 11:09:46
【问题描述】:

我正在努力为我的网站添加一些统计信息。例如:“这一天/周/年观看次数最多的话题”。

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

但那将是一张大桌子(按行排列)。这是要走的路吗?

【问题讨论】:

    标签: database statistics


    【解决方案1】:

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

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

    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

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

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 2012-07-26
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 2011-05-20
      • 2019-01-30
      • 1970-01-01
      相关资源
      最近更新 更多