oracle exists和in的区别,及一些sqp优化手段

oracle exists和in的区别:

           通常都知道exists的效率比in要高一些,但不知道为什么,今天特地看了一下:

          exists是先进行主表查询,然后再进行子表查询如果查到符合条件的返回;

          in是先进行子表查询,把子表查询的结果存入一张中间表后,再进行主表查询,所以一般exists的效率要高些。

          一般主表的数据较大,子表数据较小,可以用in。

sql优化手段:

(1)用exists代替in;

(2)用truncate代替delete;

(3)用union代替or(适用于索引列);

(4)对经常要查询的字段建索引;

(5)在子查询中尽量少用“*”;

(6)from语句选择最好记录的表做为基础表(最后的表);

(7)where语句过滤条件的排序,那些可以过滤大量数据的条件应放在最后面;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部