【问题标题】:Mysql performance selecting blog post views by dateMysql 性能按日期选择博客文章视图
【发布时间】:2023-03-04 10:39:01
【问题描述】:

关于根据日期的用户浏览量选择“博客文章”时的 SQL 性能问题。

我想记录每个帖子的用户浏览量,我将使用“每日”和“每月”作为参数选择他们中的每个人:

PS:

一天或一个月内浏览次数最多的帖子。

为了记录视图,我创建了一个表格,以便在每次页面加载后插入每个视图的日期。

他们会在需要时按 DAY() 和 MONTH() 选择(计数)它们。

这里的问题是,当表格或需要此信息的用户数量增长时,选择开始变慢,因为行(视图)的数量乘以帖子的数量。

我认为的另一种选择是,为每日记录创建一个表,为每月记录创建另一个表,然后在每个页面加载代码检查所选日期是否存在行,如果行存在,脚本会增加视图计数,如果不计数,则脚本插入视图计数 = 1 的行;

附:

每日观看次数 邮政编号 |意见 |日期

1 | 898 | 2014-07-11

2 |第676章2014-07-11

1 | 333 | 2014-07-10

这样每个帖子每天只能有一行。

还有更好的选择吗?你觉得我的替代方案怎么样?不需要我的建议吗?

【问题讨论】:

    标签: mysql sql sql-server performance


    【解决方案1】:

    我认为最好的解决方案是:

    1. 创建一个带有字段的统计数据表:

      • 身份证
      • 日期(存储日期 m-d-y)
      • 浏览量(商店访问次数)
      • 页面(商店博客文章)

      每天一个唯一的行,并根据需要以编程方式更新。

    2. 然后可以使用daymonthyear字段进行查询,甚至可以添加weeknum字段进行查询以获取按周分组的统计信息。

    3. 此外,您可以添加第二个表来存储每次访问的完整日期 (m-d-y h:m:s),您可以将浏览器、ip 等字段添加到此表中。

    【讨论】:

      猜你喜欢
      • 2016-06-20
      • 1970-01-01
      • 2019-01-13
      • 2015-06-03
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多