Oracle In和exists not in和not exists的比较分析
程序员文章站
2024-02-18 10:19:46
...
一个是问in exist的区别,一个是not in和not exists的区别
把这两个很普遍性的网友比较关心的问题总结回答一下。in和exist的区别
从sql编程角度来说,in直观,exists不直观多一个select,
in可以用于各种子查询,而exists好像只用于关联子查询
从性能上来看
exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了
in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。
not in和not exists的区别
not in内外表都进行全表扫描,没有用到索引;
not extsts 的子查询能用到表上的索引。
所以推荐用not exists代替not in
不过如果是exists和in就要具体看情况了
有时间用具体的实例和执行计划来说明。
推荐阅读
-
php中is_file和file_exists与is_dir的区别
-
php isset 和 array_key_exists 检查数组中是否存在某值的区别
-
Oracle Decode()函数和CASE语句的比较
-
五种MySQL数据库可靠性方案的分析和比较
-
Thinkphp模板标签if和eq的区别和比较实例分析_php实例
-
Oracle中不使用索引和使用索引的效果比较分析
-
Oracle Decode()函数和CASE语句的比较
-
MySQL5、PostgreSQL8和Oracle10g的初步比较
-
DB2和 Oracle的并发控制(锁)的比较_Oracle应用_脚本之家
-
Oracle In和exists not in和not exists的比较分析