SQL中not in,not exists,和外连接效率比较

cwmwss 2011-01-17 01:32:42
(1) select count(*) from t1 where object_id not in ( select object_id from t2);
(2) select count(*)
from t1
where not exists
(select null from t2 where t2.object_id = t1.object_id);
(3)select count(*)
from t1, t2
where t1.object_id = t2.object_id
and t2.object_id IS NULL;

问这三个语句效率比较,数据量在千万
(数据库为DB2或MS SQL2005)
...全文
272 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zn85600301 2011-01-17
  • 打赏
  • 举报
回复

这个主要看你的索引建立 和被索引数据的分布
确实很难说 还是自己跑一下 实践总结吧
暗然的白天 2011-01-17
  • 打赏
  • 举报
回复
简单的说外表数据量大内表小数据量时用IN 外表数据量小里内表数据量大时用EXISTS 查询原理不一样,看情况吧
qybao 2011-01-17
  • 打赏
  • 举报
回复
自己analyze跑一变,看看系统的分析报告
小小嗨皮 2011-01-17
  • 打赏
  • 举报
回复
2>1=3

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧