exist和in的区别:
select * from a where id in (select id from b) ;
select * from a where id exists (select id from b) ;
对于这样的sql查询同一个库,结果是一样的,但是查询速度对于不同情况,
差别较大;
使用in ,sql语句是先执行子查询,也就是先查询b表,在查a表,
而使用exists是先查主表a ,再查字表b; 对于主表数据较多时,我们
使用in速度比exist更快,反之,从表b较大时,使用exist插叙速度更快(都会使用索引),原则就是先查询小表再查询大表,
如果使用的是not in与not exists,直接使用not exists,因为not in 会进行全表扫描
不走索引,not exists会走索引。
————————————————
版权声明:本文为CSDN博主「小擦鸟飞翔天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33652147/article/details/92734987