度量快速开发平台-专业、快速的软件定制快开平台

标题: sql中 in , not in , exists , not exists效率分析 [打印本页]

作者: 万望    时间: 2020-4-25 21:40
标题: sql中 in , not in , exists , not exists效率分析
本帖最后由 万望 于 2015-11-30 12:01 编辑

in和exists执行时,in是先执行子查询中的查询,然后再执行主查询。而exists查询它是先执行主查询,即外层表的查询,然后再执行子查询。
exists 和 in 在执行时效率单从执行时间来说差不多,exists要稍微优于in。在使用时一般应该是用exists而不用in

如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。IN时不对NULL进行处理。

not exists 和 not in 比较时,not exists 的效率比较高。

附上实例:
oracle in 查询速度优化

作者: 万望    时间: 2020-4-25 21:40
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况
作者: 陈晓龙    时间: 2020-4-26 16:08
能来几个案例就更好了!
作者: 张兴康    时间: 2020-4-26 17:04
不错,后边实践下
作者: 万望    时间: 2020-4-26 23:46
张兴康 发表于 2015-11-26 17:04
不错,后边实践下

这个要数据量大才能体现效果
作者: 刘亚东    时间: 2020-4-27 09:18
你这个对比可以
作者: 刘亚东    时间: 2020-4-27 09:18
上次我的in研究,你这回更全面了
作者: 万望    时间: 2020-4-30 11:34
刘亚东 发表于 2015-11-27 09:18
上次我的in研究,你这回更全面了

那我加个链接到你那里去
作者: 万望    时间: 2020-4-30 11:40
陈晓龙 发表于 2015-11-26 16:08
能来几个案例就更好了!

http://plat.delit.cn/forum.php?m ... d=322&fromuid=8 (出处: 度量快速开发平台-业界最好的全功能软件开发平台)[/url]
作者: 刘亚东    时间: 2020-4-30 18:26
万望 发表于 2015-11-30 11:40
oracle in 查询速度优化 http://plat.delit.cn/forum.php?mod=viewthread&tid=322&fromuid=8 (出处: 度量 ...

最不给力的就是发链接的人了。。。。。
作者: 万望    时间: 2020-4-30 20:14
刘亚东 发表于 2015-11-30 18:26
最不给力的就是发链接的人了。。。。。


作者: 陈晓龙    时间: 2020-5-1 13:17
万望 发表于 2015-11-30 11:40
oracle in 查询速度优化 http://plat.delit.cn/forum.php?mod=viewthread&tid=322&fromuid=8 (出处: 度量 ...

链接还可以耶!




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2