select * from emp in empno in(1,2,3......);
in 函数的使用限制:in()中的数据有最多1000条的限制
可用exists 替换,如果主表的话用exist会快一些,如果相反的话,还是in快一些
有两个简单例子,以说明 "exists"和"in"的效率问题
1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
2) select * from T1 where T1.a in (select T2.a from T2) ;
T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。
因为exists就是为了in都不能跟大数据而生的。
本文探讨了SQL查询中IN与EXISTS关键字的使用场景及其性能差异。通过两个实例展示了当从表数据量远小于主表时使用EXISTS查询效率更高,反之则使用IN更优。此外还提到了IN函数的数据限制。
6万+

被折叠的 条评论
为什么被折叠?



