php - 最佳实践 : Number of views/clicks over the last 30 days

标签 php mysql

我意识到有很多方法可以做到这一点,因此在开始之前,我希望获得一些具有此类任务经验的人的意见。

我有一个具有 1000 次下载的 MySQL 表。每个下载都有一个包含总下载数的列。

我想做的是使其更加动态,因此也将这个数字转换为过去 30 天的下载数量。

所以我基本上想用每个下载 ID 和过去 30 天的 30 列下载数据创建一个新表。通过 PHP 将这些组合在一起并由此下降。或者我可以使用前面提到的表中的“添加的数据”字段,并将下载总数除以给定下载的在线天数。

如果不是完全不同的解决方案,您会推荐哪种解决方案?

最佳答案

这实际上取决于您的具体要求和系统负载。

您只需要上个月的结果吗?每月运行一次重置此值的 cronjob。如果您需要跟踪平均值(总是过去 30 天),您的 mysql 方法肯定会起作用,但 30 个字段可能有点过大了。

两种解决方案:

  1. 每次下载有 3 个字段:今日计数器,一个包含 30 个元素的 json 数组,以及今天的 30 天平均值。一个定时任务 定期(午夜)可以将数据从每日计数器中移出 到数组,删除最旧的条目并更新平均值。 这样,您在操作期间的系统负载就会最小。

  2. 使用像 Redis 这样的 NoSQL 和每日计数器,并给每个计数器一个 超时 30 天。这样你就可以随时总结任何内容 您下载文件所拥有的数据,甚至无需触及您的 数据库。

关于php - 最佳实践 : Number of views/clicks over the last 30 days,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209570/

相关文章:

php - 如何在服务器上连续执行程序?使用哪种语言?

php - MAMP 上的 MediaWiki,OSX 10.8.5 : Unknown error in PHP's mail() function

php - GoDaddy 上的 MySql 连接字符串(远程服务器)

php - 各种 PHP IDE 的优缺点是什么?

mysql - 将 'schema.sql' 文件导入 PHPMyAdmin

mysql - 在cmd中使用mysqldump备份数据库被拒绝访问

MySQL 在一段时间后断开连接

php - 让 json 中的每个 "li"成为它自己的链接?

c# - ASP.NET 4 C# - 导入 MySQL 数据转储

mysql - SQL 连接重复结果