下面是我的示例查询:
SELECT userid,count(*)
FROM hits
GROUP BY userid我的桌子是这样的
id \ userid \ time ...etc
其中id是主键,我使用这个表将每次访问都存储在一个页面上。这意味着我的表有200,000+行。
对于userid,假设是X,我想知道它在查询中的排名,这意味着有多少用户访问了该页面,而不是使用该用户in的用户。
我知道有很多这样的问题,但它们不一样,因为
如有任何疑问,请在评论中加以澄清。
谢谢
发布于 2012-06-22 20:20:25
在预期返回多行的查询中,Count/Group将逐渐变慢,因为查询仍然必须触摸表中的每一行。通常,如果您希望经常做这样的报告,并且您希望您的表继续增长,那么您应该开始将该值滚动到缓存的值中(因此您仍然应该存储每个结果,但也应该添加到该用户用户记录上的计数器)。当然,这也回避了一个问题:您的user_id列上是否有索引,用户表中是否有外键,这将大大加快查询的速度。
https://stackoverflow.com/questions/11163455
复制相似问题