有时候 group by 为什么这么慢呢

假设三个表 t_user , t_user_detail , t_log_info  记录都比较多(5000~1000)。

 

select count(user_id),a.user_type from t_user a
inner join t_user_detail b on a.user_id=b.user_id
inner join t_log_info c on b.user_id=c.user_id

where a.user_type=100     

这样会比较慢。

 

一个小小的改进速度会快很多。 b.user_id 改成 a.user_id

select count(user_id),a.user_type from t_user a
inner join t_user_detail b on a.user_id=b.user_id
inner join t_log_info c on a.user_id=c.user_id

where a.user_type=100    

 

个人观点, 表关联时尽量用where过滤后记录比较少的表的字段关联。  

 

posted @ 2011-05-31 20:45  吴永富  阅读(982)  评论(0编辑  收藏  举报