- IN:当在两表查询的时候, 主表是大表(数据量多),子查询表是表(数据量少),这时,使用IN关键词进行匹配查询效率高;
 - EXISTS:当在两表查询的时候, 主表是小表(数据量少),子查询表是大表(数据量多),这时,使用EXISTS关键词进行匹配查询效率高;
 
注意1:in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
- 
not in 和 not exists 区别:
 
如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;
而not extsts 的子查询依然能用到表上的索引。
所以无论那个表大,用not exists都比not in要快。
本文来自博客园,作者:菜鸟小辛,转载请注明原文链接:https://www.cnblogs.com/hashxin/p/15607135.html
                    
                
                
            
        
浙公网安备 33010602011771号