sql中exists与in效率

来源:互联网 发布:wlan密码破解软件 编辑:程序博客网 时间:2024/05/19 18:00

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   )  
   
                        效率好一点.