【发布时间】:2017-02-22 11:23:49
【问题描述】:
我想让用户按时间段(日、周、月、年等)按“观看次数最多”对视频进行排序。
目前所有数据都在 MySQL 中,基本上设置是一个“videos”表和一个“views”表,其中包含带有 video_id、session_id 和 datetime 列的行。
为了按“观看次数最多”排序,使用 COUNT() 为每个视频生成一个计算字段,该字段计算指定时间段内的所有视图行。目前,这适用于“小时”和“日”等时间段,但“月”和“年”等时间段可能需要很长时间。
问题在于这是不可扩展的。我有数千个视频,而且大多数视频每个月都会产生数千次观看,每个月的观看次数总计达到数百万次。
我要求的是可扩展的通用解决方案/策略。这样的东西在 MySQL 中是否可行,还是我应该考虑使用不同的数据库?
【问题讨论】:
标签: mysql database aggregate scalability bigdata