SQL中exists和in的区别

1.exist,not exist一般都是与子查询一起使用. In可以与子查询一起使用,也可以直接in (a,b…..)。

2.exist会针对子查询的表使用索引. not exist会对主子查询都会使用索引. in与子查询一起使用的时候,只能针对主查询使用索引. not in则不会使用任何索引. 注意,一直以来认为exists比in效率高的说法是不准确的。

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐