首页 > 其他 > 详细

oralce中in和exists性能分析

时间:2015-03-11 10:52:15      阅读:176      评论:0      收藏:0      [点我收藏+]

在我们平常写sql的时候,in和exists这两个关键词会经常用到,所以我们有必要对它们的性能作一个分析。

[in和exists性能分析] 

1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;

    T1数据量小而T2数据量非常大时,即数据量T1 << T2 时,1) 的查询效率高。

2) select * from T1 where T1.a in (select T2.a from T2) ;

    T1数据量非常大而T2数据量小时,即数据量T1 >> T2 时,2) 的查询效率高。

    简而言之,一般来说:外表大,用IN;内表大,用EXISTS。如果查询的两个表大小相当,那么用in和用exists基本没什么区别。

[not in和not exists性能分析] 

如果查询语句用到了not in, 那么内外表都进行全表扫描,没有用到索引。

而not exists的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。


oralce中in和exists性能分析

原文:http://blog.csdn.net/zdp072/article/details/44194935

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!