Php &引用;每周前十名“;数据库设计问题

Php &引用;每周前十名“;数据库设计问题,php,mysql,database,database-schema,Php,Mysql,Database,Database Schema,我在一个视频网站上工作。就交通而言,相当拥挤。我试图按视频的观看次数对视频进行排名。也就是说,视频A的浏览量为5.2K,而B的浏览量为5k,因此A的排名高于B。但我想计算每个视频在一周(或一个月,如果需要)内的浏览量,然后根据浏览量对其进行排名 我首先创建了一个只包含视图的表。i、 e.每次查看视频时,都会在表中插入一行以及时间戳和视频id。这是一个可怕的决定。由于流量很大,表变得很大,影响了性能。有更好的方法吗?我会让表格根据周数存储特定视频的总浏览量。只需根据需要创建/增加 i、 e.有视频

我在一个视频网站上工作。就交通而言,相当拥挤。我试图按视频的观看次数对视频进行排名。也就是说,视频A的浏览量为5.2K,而B的浏览量为5k,因此A的排名高于B。但我想计算每个视频在一周(或一个月,如果需要)内的浏览量,然后根据浏览量对其进行排名


我首先创建了一个只包含视图的表。i、 e.每次查看视频时,都会在表中插入一行以及时间戳和视频id。这是一个可怕的决定。由于流量很大,表变得很大,影响了性能。有更好的方法吗?

我会让表格根据周数存储特定视频的总浏览量。只需根据需要创建/增加

i、 e.有视频id、周数和总视图字段

有一个好的索引(即周数、总浏览量),以便容易提取前十名


还有一个
cron
作业来删除旧数据(或将其存档)。这将使表格的大小易于管理。

我希望表格能够根据周数存储特定视频的总浏览量。只需根据需要创建/增加

i、 e.有视频id、周数和总视图字段

有一个好的索引(即周数、总浏览量),以便容易提取前十名


还有一个
cron
作业来删除旧数据(或将其存档)。这将使表格的大小保持可控。

借用@Ed Heal的答案,总结绝对是您想要的。但是,如果设计一个表,使其在一年中的某一天或某一周内递增,则在时间间隔翻转时会出现问题。如中所示,在间隔开始时,每个人都从0开始。如果你恰好在你休息的开始,事情看起来…很奇怪


我发现保存这些统计数据最有效的方法是使用尾随周期。(也就是说,在一周内,你可以统计过去七天的视频浏览量。)这显示了你网站内容发展趋势的非常准确的图片。要做到这一点,您需要定期运行cron作业,该作业将在所需的后续时间段内计算每个视频的统计信息。存储总结,并对其进行排序。

要借鉴@Ed Heal的答案,总结绝对是您需要的。但是,如果设计一个表,使其在一年中的某一天或某一周内递增,则在时间间隔翻转时会出现问题。如中所示,在间隔开始时,每个人都从0开始。如果你恰好在你休息的开始,事情看起来…很奇怪


我发现保存这些统计数据最有效的方法是使用尾随周期。(也就是说,在一周内,你可以统计过去七天的视频浏览量。)这显示了你网站内容发展趋势的非常准确的图片。要做到这一点,您需要定期运行cron作业,该作业将在所需的后续时间段内计算每个视频的统计信息。存储摘要并对其进行排序。

ftw统计摘要。谢谢!那是更好的办法。不会影响性能。非常可扩展。但我想知道我该如何安排一份工作。有什么帮助吗?如果您正在使用*nix,请执行
mancrontab
。它会解释的。如果使用windows,请使用控制面板并查找统计ftw的日程汇总。谢谢!那是更好的办法。不会影响性能。非常可扩展。但我想知道我该如何安排一份工作。有什么帮助吗?如果您正在使用*nix,请执行
mancrontab
。它会解释的。如果使用windows,请使用控制面板并查找日程安排您是对的。开始时,前10项的图表看起来很奇怪。但实际上我要为前一周做一张图表。但是谢谢你的帮助!:-)你说得对。开始时,前10项的图表看起来很奇怪。但实际上我要为前一周做一张图表。但是谢谢你的帮助!:-)