我试过寻找一个解决方案,但似乎无法找到一个。MySQL优化一个有很多额定值的表
我有一个帖子评分表,其中列“评级”是0或1,这取决于一个人是否对某个帖子进行了竖起大拇指或竖起大拇指。目前大约有2000个批准的帖子和280万个评级。
我想找到已通过审核批准的前20名评级职位。下面是我想会的工作查询:
SELECT p.* FROM `posts` p
LEFT JOIN `ratings` r ON r.pid=p.id
WHERE p.approved=1
GROUP BY p.id
ORDER BY AVG(r.rating) DESC LIMIT 0,20
我对r.rating和查询仍然需要3秒左右添加一个索引。关于如何减少这个时间的任何想法?
你有'r.pid'上的索引吗? – Dre 2011-03-15 06:59:23
你有没有关于p.approved的索引? – judda 2011-03-15 13:59:31