假设我有一个MySQL表来保持页面访问次数,我想跟踪每个用户的总页面访问次数。这是用于递增字段的SQL:
UPDATE visits
SET visits = visits + 1
WHERE user_id = 12
这很简单,但我想知道是否有更快的方法来实现这一目标。我的意思是,如果我有很多访问者(理想情况下,每天有数百万用户),这种方法是否足够,或者我应该使用替代方法。感谢。
答案 0 :(得分:3)
使用user_id
上的索引,这将非常快。我怀疑你是否能够使用任何其他手段获得(明显)更快的结果。您可能会遇到与此查询相比数百万用户的其他性能/服务器问题(有些人称之为“微优化”)
答案 1 :(得分:0)
我认为这不会更快,但您可以做的一件事是堆叠他们的访问并通过cron作业每分钟更新一次点击次数。请确保user_id
已编入索引
答案 2 :(得分:0)
如果visits
上有索引,这可能会很慢
虽然我建议保留原样,直到你获得至少10 000名用户
因为无论如何你必须多次重写你的代码。