我经营一个网站,上面有视频。我想要每个视频的观看次数应始终可供所有用户使用。
通常我会使用以下内容:
UPDATE videos SET views = views+1 WHERE id = ...
有没有更快和/或更好的方法?
最佳答案
这种特定的方式容易出现并发错误,除非您使用事务/锁来处理它们。
我更倾向于点击次数,例如:
INSERT DELAYED INTO video_hits (video_id, time) VALUES (:video_id, NOW());
这样您不仅可以获得计数,还可以获得一段时间内观看次数的统计数据。
注意:DELAYED
仅适用于 MyISAM,这很好,因为它会立即返回,并且 COUNT(*)
在 MyISAM 表上速度很快。对于 InnoDB,您可以省略它。
关于php - 增加实时观看次数的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452369/