sql中exists与in效率

1.   如果要查询的列上没有NULL值,NOT   IN   和   NOT   Exist效率  
                是一样的.  
          2.   跟beckhamboo说的基本类似:    
                  当数据量较少时,not   in执行速度比not   exists快  
                  反之,not   exists较可取  
          3.   同样,处理   IN   和Exist   也有下面的规则:  
   
                  内查询为小表,外查询为大表时,使用IN的效率高,例如:      
                      select   count(*)   from   bigtable  
                      where   id   in(select   id   from   smalltable)  
                          效率高  
   
                  select   count(*)     from   bigtable  
                        where   exists   (   select   null   from   smalltable    
                        where   smalltable.id   =   bigtable.id   )  
                    效率低  
   
   
                  反之,内查询为大表,外查询为小表时,使用Exist的效率高.  
                     
                        select   count(*)   from   smalltable  
                        where   id   in   (select   id   from   bigtable)  
                         
                        效率差一点      
   
                        select   count(*)     from   smalltable  
                        where   exists   (   select   null   from   bigtable    
                        where   smalltable.id   =   bigtable.id   )  
   
                        效率好一点.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值