【问题标题】:Gathering pageviews MySQL layout收集浏览量 MySQL 布局
【发布时间】:2010-10-29 18:23:34
【问题描述】:

嘿,有人知道设置 MySQL 数据库以收集网页浏览量的正确方法吗?我想收集这些网页浏览量,以便稍后在图表中显示。我在下面列出了几种方法。

选项 A: 每次有人访问网站时计算网页浏览量并为每个带有时间戳的网页浏览量创建一个新行会更好吗?因此,50,000 次查看 = 50,000 行数据。

选项 B: 计算每天的浏览量,并有一行计算浏览量。每次有人访问该站点时,计数都会增加。因此,50,000 次查看 = 每天 1 行数据。每天都会创建一个新行。

上面的任何选项都是我想要做的正确方法吗?还是有更好更有效的方法?

谢谢。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    选项 C 将解析来自 Web 服务器的访问日志。不需要额外的存储空间,存储各种额外的信息,甚至存储对图像和 JavaScript 文件的请求。

    ..

    但是,如果您只想跟踪对运行您自己的代码的网页的访问,我肯定会选择选项 A,除非您预计您的网站上会有大量流量。

    这样,您可以在一天中的每小时创建概览,并存储比时间戳更多的信息(如访问的页面、用户的浏览器等)。您现在可能不需要它,但稍后您可能会感谢自己没有丢失这些信息。 如果在某些时候表格变得太大,您总是可以想办法解决这个问题。

    【讨论】:

    • 我确实计划有很多流量,比如每月大约 200 万,这让我担心数据库会很快变得多大。我还计划将用户的浏览器和其他信息放在不同的表格中,每个人只添加一次(唯一)到数据库中,而不是只计算每次展示。
    【解决方案2】:

    如果您关心网页浏览量如何随一天的时间而变化,选项 A 会保留该信息(尽管您可能仍会做一些分桶,例如每小时,以减少整体数据大小 - 但您可能会在“稍后再做” ,离线”,同时存档所有详细信息)。选项 B 占用的空间要少得多,因为它会丢弃大量信息……您可能关心也可能不关心。如果你不知道你是否关心,我认为,有疑问,你应该保留更多数据而不是更少——“汇总和存档”过多的数据相当容易,但恢复数据一点也不容易。我聚集了;-)。所以,聚合风险更大……

    如果您决定保留大量的每日数据,一种策略是使用多个表,例如每天一个;这将使处理旧数据变得最容易(对其进行汇总、存档、从实时数据库中删除),而不会减慢当前的“日志记录”。因此,比如说,5 月 29 日的综合浏览量将在 PV20090529 中——与前几天和后几天的不同表(这确实需要动态生成表名,或者在 cron-jobs 中创造性地使用 ALTER VIEW,等等——没什么大不了的!)。我经常发现这种“分片方法”具有出色的(有时是意想不到的)投资回报,因为与单体数据库相比,数据库的扩展超出了最初的假设......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2017-11-16
      • 2021-04-12
      • 2018-01-11
      • 2011-05-09
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多