sql-------not in 与not exists效率

[code]
总结: not exists总比not in好, in在内表大时好,exists在内表小时好


大表,数据量2229073

小表,数据量77989

注:两个表都没有索引



试验结果:

轮次 内外表 测试对象 用时(秒) 结果数据量

--1.1 外大内小 not in 1:29 2176395

--2.1 外大内小 not exists 0:30 2176395

--1.2 外大内小 in 0:03 52681

--2.2 外大内小 exists 0:02 52681


--1.3 外小内大 in 0:02 52681

--2.3 外小内大 exists 0:05 52681


--1.4 外小内大 not in 0:05 25311
--2.4 外小内大 not exists 0:04 25311



结果分析:

不受表大小影响,not exists一直表现不错,在外大内小的时候表现尤佳;外表大内表小的时候,exists占微弱优势;外表小内表大的时候,in占优势;not in,貌似不行啊。



注:结果会受数据量和索引等因素的影响,所以实际应用中建议多做测试,以达到最优化效果。



顺便说一下,in在罗列有限集合的时候还是不错的,跟用or和=相差不大,但起码方便了,特别是数量多的时候;not in在罗列有限集合的时候,我用7262656条记录的表做测试,还是用and和<>连接会快一些。


[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值