MySQL中in和EXIST 的区别和使用场景

EXIST 和in都是表示在某个范围,查询结果相同,但是有前后驱动的区别。

#对B查询涉及id,使用索引,故B表效率高,可用大表 -->外小内大

select * from A where exists (select * from B where A.id=B.id);

#对A查询涉及id,使用索引,故A表效率高,可用大表 -->外大内小

select * from A where A.id in(select  id  from B);

总结:一般使用的场景是 IN适合主表大子表小,EXIST适合主表小子表大

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容