sql not in 查询,效率低

select a from table
where a not in (1,2,3) 换成 not exist 要怎么写,另外not in执行效率真的很低,有什么可替代的?

SQL里的EXISTS与in、not exists与not in(转载)_GG  

2009-06-28 16:18:05|  分类: Oracle|举报|字号 订阅

SQL里的EXISTS与in、not exists与not in(转载)
2007年12月12日 星期三 21:22

系统要求进行SQL优化,对效率比较低的SQL进行优化,......
答案就在这里:SQL里的EXISTS与in、not exists与not in 效率问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

 select a from table 
where  not exists(select 1
                      from table
                      where a in(1,2,3)) 

这个效率低吗,你能说说如何个低法吗。

换成not exists,同一张表检索两次,效率不如not in。

select a from table
where not exists(select *
from table
where a in(1,2,3) )

                                        不过这样效率也不高 还不如你自己的  要根据具体情况具体讨论

如果in()中的数据太多的话,考虑用表连接吧,如果不是太多的话还是用in吧