SQL语句中exists和in有何区别

   在SQL性能优化的时候,经常遇到是使用exists还是in提高效率的问题,这里结合之前写的两篇博客MYSQL中in的用法》和《MYSQL中EXISTS的用法》,总结一下二者的区别。
   exits使用循环(loop)的方式,先执行主查询并且缓存结果集,然后执行子查询,由外表的记录数决定循环的次数,所以,外表的记录数少于内表时,适合使用exists。in先执行子查询并且将去重后的结果集缓存,然后再执行主查询,所以,子查询返回的结果集梳理越小,越适合使用in。二者可以根据需求进行切换。
   对于以上话题,大家又有什么自己的独特见解呢?欢迎在下方评论区留言!
 

  读后有收获,小礼物走一走,请作者喝咖啡。

赞赏支持

原文地址:https://www.cnblogs.com/east7/p/13893568.html