码迷,mamicode.com
首页 > 其他好文 > 详细

in 和 exists

时间:2014-11-19 17:41:07      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:使用   sp   bs   as   nbsp   oo   ash   没有   索引   

in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。

一直以来认为exists 比in 效率高的说法是不准确的。如果查询的两个表大小相当,那么用in 和exists 差别不大。

 

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in

 

not in 和not exists

如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;

而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists 都比not in 要快。

in 和 exists

标签:使用   sp   bs   as   nbsp   oo   ash   没有   索引   

原文地址:http://www.cnblogs.com/ingstyle/p/4108434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!