我正在实现一个应用程序来跟踪查看帖子的次数。但我想保持一种“智能”的跟踪方式。这意味着,我不想仅仅因为用户刷新他的浏览器而增加查看计数器。
所以我决定只在 IP 和用户代理(浏览器)是唯一的情况下增加查看计数器。到目前为止,这是有效的。
但后来我想。如果 Youtube 是这样做的,他们有几个视频有数千甚至数百万的观看次数。这意味着他们在数据库中的视图表将被过度填充 IP 和用户代理......
这让我假设他们的视频表有一个用于视图的计数器缓存(即views_count
)。这意味着,当用户点击视频时,会存储 IP 和用户代理。另外,增加了视频表中的计数器缓存列。
每次点击视频。Youtube 需要查询视图表并计算条目数。这不会严重影响性能吗?
他们是这样做的吗?或者,还有更好的方法?