Dict.CN 在线词典, 英语学习, 在线翻译

都市淘沙者

荔枝FM Everyone can be host

统计

留言簿(23)

积分与排名

优秀学习网站

友情连接

阅读排行榜

评论排行榜

单表级联查询优化

 

优化前的糟糕语句
select t.userid ,
             (
select count(*)  from snsjob.mxt_temp_lxw_voice_info m where  m.statename='广东'  and   m.userid=t.userid    ) totals,
             (
select count(*)  from snsjob.mxt_temp_lxw_voice_info m where  m.statename='广东'  and    m.userid=t.userid and m.isvalid = 0   ) uncheck,
             (
select count(*)  from snsjob.mxt_temp_lxw_voice_info n where  m.statename='广东'   and    n.userid=t.userid and  n.isvalid = 1  ) checkedpass 
             
from snsjob.mxt_temp_lxw_voice_info t 
             
group by t.userid order by checkedpass desc  

优化后如下

select t.userid,
        
count(*),       
       
sum(case when  isvalid = 0 then 1 else 0 end ),
       
sum(case when  isvalid = 1 then 1 else 0 end ) checkedpass
  
from snsjob.mxt_temp_lxw_voice_info t where statename='广东' 
 
group by t.useridby checkedpass desc 
 
order 
 
速度快20倍以上,数据越多越明显

posted on 2007-12-24 11:35 都市淘沙者 阅读(1319) 评论(0)  编辑  收藏 所属分类: Oracle/Mysql/Postgres/


只有注册用户登录后才能发表评论。


网站导航: