- 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号