您的位置:首页 > 数据库

sql中exists与in效率

2010-01-10 15:50 381 查看
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   )  

   

                        效率好一点.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql null