广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Oracle In和exists not in和not exists的比较分析

    2018-05-04 21:21:22 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布
    把这两个很普遍性的网友比较关心的问题总结回答一下。

    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就要具体看情况了

    有时间用具体的实例和执行计划来说明。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告