1.exist,notexist一般都是与子查询一起使用.in可以与子查询一起使用,也可以直接in(a,b.....)。
2.exist会针对子查询的表使用索引.notexist会对主子查询都会使用索引.in与子查询一起使用的时候,只能针对主查询使用索引.notin则不会使用任何索引.注意,一直以来认为exists比in效率高的说法是不准确的。
in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
1.exist,notexist一般都是与子查询一起使用.in可以与子查询一起使用,也可以直接in(a,b.....)。
2.exist会针对子查询的表使用索引.notexist会对主子查询都会使用索引.in与子查询一起使用的时候,只能针对主查询使用索引.notin则不会使用任何索引.注意,一直以来认为exists比in效率高的说法是不准确的。
in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。