1

我在一个视频网站上工作。就交通而言,这是相当沉重的。我正在尝试按观看视频的次数对视频进行排名。即视频 A 获得 5.2K 观看次数,B 获得 5k 观看次数,因此 A 排名高于 B。但我想计算每个视频在一周(或一个月,如果需要)内获得的观看次数,然后按观看次数对其进行排名。

我首先创建了一个只包含视图的表。即每次观看视频时,都会在表格中插入一行以及时间戳和视频ID。那是一个可怕的决定。由于流量很大,表变得很大,影响性能。有没有更好的方法来做到这一点?

4

2 回答 2

4

我会让表格存储特定视频的总观看次数与周数。只需根据需要创建/增加。

即有字段video_id、week_number 和total_views。

有一个好的索引(即关于week_number,total_views),这样前十名很容易提取。

还需要cron删除旧数据(或存档)。这应该使表格大小易于管理。

于 2012-04-12T03:34:29.213 回答
1

背靠@Ed Heal 的回答,总结绝对是你要找的。但是,设计一个根据一年中的一天或一周递增的表格会在间隔翻转时导致问题。就像在区间开始时,每个人都从 0 开始。如果你恰好在区间的开始,事情看起来……很奇怪。

我发现保留这些统计数据的最有效方法是使用跟踪期。(即一周内,您计算过去 7 天的视频观看次数。)这显示了您网站上内容趋势的非常准确的图片。为此,您需要定期运行一个 cron 作业,该作业将计算每个视频在所需的尾随期间的统计信息。存储摘要,并对它们进行排序。

于 2012-04-12T04:12:23.603 回答