按SUM排序非常慢

时间:2011-09-21 16:27:30

标签: mysql query-optimization

我有以下查询:

  SELECT SUM(s.count) as count, a.name, s.author_id as id
    FROM twitter_author_daily_stats s
    JOIN twitter_author a ON s.author_id = a.id
   WHERE s.`date` >= '2011-01-07'
     AND s.`date` <= '2011-09-21'
     AND s.profile_twitter_search_id IN (263)
GROUP BY s.author_id
   LIMIT 30;

它使用索引(author_id,profile_twitter_search_id,date);它快(~1s);它返回〜2500行。

但是,当我添加ORDER BY count时,查询会运行几分钟(我没有等待它完成)。

它不应该从原始查询中取出~2500行并按count列排序吗?为什么需要这么长时间?

具有更好MySQL知识的人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

更好:让MySQL解释它,使用恰当命名的EXPLAIN关键字。

索引优化只能在certain situations中执行,更改排序/分组/条件是改变环境的好方法。