gpt4 book ai didi

mysql - 统计一段时间内的记录观看次数

转载 作者:行者123 更新时间:2023-11-29 13:32:35 25 4
gpt4 key购买 nike

我有一个包含大量(文章)记录的数据库,目前我通过计算浏览次数来跟踪每条记录的浏览次数,以便我可以对“查看浏览次数最多的 5 篇文章”之类的内容进行排序

这是通过一列整数完成的,每当检索记录时,整数计数就会增加 1。这工作正常,但由于计数系统非常简单,我只能看到“所有时间”的 View 。

我想要类似“查看本周浏览次数最多的 5 篇文章”之类的内容。

我能想到的唯一办法是有一个单独的表,每当查看一篇文章时,都会用文章 ID 和日期记录,然后在有限的时间段内进行 SELECT 语句。这很容易实现,但同时 table 很快就会变得非常大。

有没有更好的方法来完成同样的事情?我在很多网站上看到了排序标准,但我不知道这是如何实现的。

有什么想法或意见吗?

提前致谢:)

最佳答案

您可以每天一行,而不是每篇文章的每个 View 一行。当查看一篇文章时,您会执行以下操作:

INSERT INTO article_views (article_id, date, views)
VALUES (@article, CURRENT_DATE(), 1)
ON DUPLICATE KEY UPDATE views = views + 1;

然后获取过去一周浏览量最高的 5 篇文章:

SELECT article_id, SUM(views) total_views
FROM article_views
WHERE date > NOW() - INTERVAL 7 day
GROUP BY article_id
ORDER BY total_views DESC
LIMIT 5

为了防止表变得太大,您可以定期删除旧记录。

关于mysql - 统计一段时间内的记录观看次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19197607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com