回答

收藏

实现查看最多特征数据库

技术问答 技术问答 235 人阅读 | 0 人回复 | 2023-09-14

我想知道如何在数据库中最好地实现 观看次数最多    的功能(例如youtube)。
& c4 g4 U4 H/ s, B& |2 U$ p5 H5 a让我解释一下 最多观看    更好的功能:    基本上,我想列出从这一天/周/月访问最多的网页/视频/等。. J' L( h+ s% [" a5 T- a
http://www.youtube.com/charts/videos_views例子。
" `' K8 z6 Y. r; }# M因此,我想知道如何最好地实现这个功能,因为我可以想到很多实现这个功能的方法,但所有的方法都有 和 -的含义。
/ x9 L) P7 a1 B$ \7 I此外,我还想听听不同程序员对其他程序员想法的评论。我也想开始一个关于这个话题的好对话。- r  \6 Z% {6 `1 }
附言 我正在研究如何计算时间,比如本月访问最多的时间,没有一个巨大的表可以保存每个视图和日期。欢迎任何想法。
: b; l8 j8 ?) W0 ^" `" f! j; C) q7 {我用点子 Mysql和PHP,欢迎这两个提示。
8 @5 G/ o" @$ Y( b3 b* j                                                               
, _1 @7 Q! O1 r- J: r: @% z6 t+ g    解决方案:                                                                0 Q6 u5 y# S+ U, F- [' D+ D/ R
                                                                有以下表格:1.视图2. views_hourly_summary 3. views_daily_summary 4." [' r8 g- t+ i* J4 O$ ?
views_monthly_summary 5. views_alltime_summary
3 V* q. ~# s& m  u- W% ]1 f8 B" g按以下间隔运行cron作业:6 g1 f# j# r, Q+ l/ }
[ol]每小时运行一次,并从views该小时的视图在表中预汇总,预汇总结果保存在表中views_hourly_summary并在表中更新views_alltime_summary表+ G  ]+ {1 R. x
每天结束时运行,从小时表中提前总结当天的视图,并保存提前总结的结果views_daily_summary表中
6 V1 q, _3 g& o6 \每末运行,从小时表中提前汇总当天的视图,然后保存预汇总结果views_daily_summary表中
& G5 I+ p  r0 `* Q1 l6 y[/ol]接下来,在获得结果时,您必须进行以下数学操作:/ p$ e6 [: ]( F. G$ b4 @
[ol]例如,您要获取最近4个小时的视图,则需要从小时表中获取3个整小时的数据,而其余数据则可以从视图表中获取,如下所示:[/ol]从views_hourly_summary中选择item_id,sum(views)作为视图,其中concat(left(now()-间隔3小时,14),‘00:00’)和concat(left(now(),14),‘00之间的小时数:$ i/ w& C3 K  V$ L2 `. ~! |* U
00’)按item_id分组
# x! i" E( q* T: ^8 y联盟
' l  B- a( {" c8 N. W9 Q: E从(now()-4小时间隔)和concat(left(now()-间隔3小时,14),‘00:00’)或datetime>  h" ]1 i; t/ _) V
concat(左(now(),14),‘00:00’)按item_id分组
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则