exist和in的区别
这里简单的给自己做个记录:
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会走索引。
赞 (0)