+ -
当前位置:首页 → 问答吧 → 求助! 关于GROUP BY语句的优化

求助! 关于GROUP BY语句的优化

时间:2011-06-18

来源:互联网

SQL code
SELECT u.company, u.zy, u.tel, u.user, m.uptime
FROM mm_info m
LEFT JOIN (
mm_user u
) ON ( m.userid = u.userid ) 
WHERE m.catid !=  ''
AND u.zy !=  ''
GROUP BY m.userid
ORDER BY m.uptime DESC 
LIMIT 0 , 39

这需要(39 总计, 查询花费 1.9012 秒)
但去了GROUP by语句后只需要(39 总计, 查询花费 0.2298 秒).
mm_info和mm_user的Userid我都做的索引.
求助..有没有别的方法..我需要分组Userid

作者: wc1217   发布时间: 2011-06-18

有一点没看懂,你分组是要统计分组的什么呢?group by的话,是求和哪个字段么?

然后是索引,因为你where匹配的是catid和zy,如果经常查这两个字段的话,对这两个字段建索引要比对主键建索引要快,否则主键的索引就对where的筛选起不到作用了。所以这里的话,索引只有在left join的时候有用。

分析一下数据库查询策略吧,sybase的话自己就有,mysql用explain看一下咧。

我差不多就知道这些吧

作者: andygordo   发布时间: 2011-06-18

相关阅读 更多