数据库sql语句中为什么exists关键字 要比 in 关键字执行效率高?

如题所述

exists是根据子查询有无记录返回确定条件是否成立,如果有记录返回,条件成立,如果子查询未返回记录,条件不成立,不对子查询结果进行匹配,所以速度较快;in要对子查询返回的结果用in关键字前面的值逐个进行匹配,如果匹配成功条件成立,匹配不成功条件不成立,所以速度较慢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-23
exists 代表存在就取出来,从上到下扫描,达到前面的select top 记录数就停止了
in的话不一样,要每一个字扫描一遍,全表扫描
所以上面的效率高,个人理解
相似回答