exists(關聯表)與left join 的效率比較


 比較sql如下:

   select  a1  from  vip a
   where  exists  (select 1 from b   where  b.1 =  a.1  and   b.ispremember = '1')
               and a.active = '1'
   

    select  a1  from  vip a left join  b  on(b.1 =  a.1 )
    where     b.ispremember = '1'  and  a.active = '1'     

環境:a表關聯列:普通索引,b表關聯列:唯一索引

          a表 6w數據量,b表200+。

兩條sql查詢出同樣的數據效率 記錄Log比較:

 

 

 

 

 

 從比較結果得出:在建立索引的情況下,都差不多。

 

 

那么 a表增條件

 

 

 

 

 

結論:使用  exists  與   left join 進行數據篩選,當都建立索引 且 使用得當(a表數據大 exists  b表數據量小),查詢效率差異不大。

           當 a表(主表)條件增多時,由於 left join 表數據增加,exists 效率較高。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM