exist和in的区别

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

exist和in的区别

exist和in的区别:


select * from a where id in(select id from  b);    

select * from a where exists(select 1 from b where id=a.id);


差别较大;

    使用in ,sql语句是先执行子查询,也就是先查询b表,在查a表,

    而使用exists是先查主表a ,再查字表b; 

    对于主表数据较多时,我们使用in速度比exist更快,反之,从表b较大时,使用exist插叙速度更快(都会使用索引),如果使用的是not in与not exists,直接使用not exists,因为not in 会进行全表扫描不走索引,not exists会走索引。



一个是性能,另一个就是Not 的情况,not的话,我还是建议用esists。

第二种速度更快,但没写对,应该这么写

select * from a where exists(select 1 from b where id=a.id);


学习

exist和in的区别

exist和in的区别:select * from a where id in(select id from b); select * from a where exists(select 1 from ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息