Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何存储和收集数据以挖掘过去24小时、过去7天、过去30天、过去365天内浏览次数最多的信息?_Algorithm_Data Structures_High Load - Fatal编程技术网

Algorithm 如何存储和收集数据以挖掘过去24小时、过去7天、过去30天、过去365天内浏览次数最多的信息?

Algorithm 如何存储和收集数据以挖掘过去24小时、过去7天、过去30天、过去365天内浏览次数最多的信息?,algorithm,data-structures,high-load,Algorithm,Data Structures,High Load,让我们设想一下,我们有一个高流量项目(一个tube站点),它应该使用此选项提供排序(不是实时的)。视频数量约为20万,所有视频信息都存储在MySQL中。每天的视频浏览量约为1.5KK。作为仪器,我们有硬盘驱动器(文本文件),MySQL,Redis Views top viewed top viewed last 24 hours top viewed last 7 days top viewed last 30 days top rated last 365 days 我应该如何存储

让我们设想一下,我们有一个高流量项目(一个tube站点),它应该使用此选项提供排序(不是实时的)。视频数量约为20万,所有视频信息都存储在MySQL中。每天的视频浏览量约为1.5KK。作为仪器,我们有硬盘驱动器(文本文件)MySQLRedis

Views
 top viewed
 top viewed last 24 hours
 top viewed last 7 days
 top viewed last 30 days
 top rated last 365 days
我应该如何存储这些信息

第一个想法是记录对文本文件的所有访问(每小时一个文件,例如访问\u 20080101\u 00.log)。在每小时开始时,计算前一小时每个视频的浏览量,并将此信息插入MySQL。然后重新计算总计(过去24小时)并更新表中的统计信息。在每天开始时,我们必须做同样的事情,但要重新计算过去7天、30天、365天。这种方法对我来说似乎很糟糕,因为我们必须为每个视频存储最近365天的信息,以便进行正确的计算

还有其他好方法吗?也许,我们必须为此选择其他仪器


谢谢。

如果绝对精度不重要,您可以将长度超过2个单位的信息汇总回来

您将进一步存储过去1-2小时的单个视图、过去1-2天的小时视图(每小时一个值)和每日视图(每天一个值)


“1-2”意味着您存储两个单元,直到满了为止,然后总结前面的单元。

我假设您使用文本文件来避免在MYsql上加载。是的,没错。我可以使用INSERT或INSERT DELAYED,但无论如何都会导致MySQL高负载。