我测试了不少次,感觉他们两个都差不多。
------解决方案--------------------
弄上几千万数据量试试看?~~~~
看情况吧。
我觉得=比in快。。。
in 还没有exists 效率高呢~~~
------解决方案--------------------
=的速度快。。。。
------解决方案--------------------
对,=的速度快,因为'='是等号右边的值直接赋给等号前面的变量,,
而in 则是在in后面的集合中寻找,有可能集合中会是多个,
结果可见
回答完毕
2009-11-17 09:28:00
------解决方案--------------------
------解决方案--------------------
= 可以用索引
数量量大的时候就看的出
------解决方案--------------------
in 备选结果很大时,效率很低的。同时可以考虑使用exsit替代in
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
使用exists
不建议使用in 和not in
in会使用表扫描
------解决方案--------------------
帮顶啦!
=的效率高
------解决方案--------------------
==的效率高
------解决方案--------------------
当然是=号的效率高 数据多了 就知道效果了
------解决方案--------------------
同上各个楼层的
------解决方案--------------------
------解决方案--------------------
个人觉得in和=效果差不多
select * from B where cc in (select cc from A) ;
假如:select cc from A就只有2个值1,2
oracle会把上面的语句变成
select * from B where cc=1 or cc=2;
如果B表上cc列有索引,2条语句都能使用索引
效率上select * from B where cc=1 or cc=2;略高些,也就高在将select * from B where cc in (select cc from A) ;的过程转为select * from B where cc=1 or cc=2;