这条SQL语句执行速度特别慢,不知为什么?

[复制链接]
查看11 | 回复9 | 2007-1-19 01:03:19 | 显示全部楼层 |阅读模式
有table1,table2两表各约100万条数据,执行:
select count(*) from table1 where id not in(select id from table2);
table1和table2两表已分别为id字段创建了索引,还是很慢,请帮助分析一下问题出在哪?
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
select count(*) from table1 where not exists (select 1 from table2 where table2.id =table1.id);
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
NOT IN FULL SCAN
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
select count(id) from (select id from tabl1 minus select id from table2)
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
not in的缘故吧 not in效率很低的 尽量不去用
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
谢谢各位帮助,我一一试用一下先
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
id 是否为空?
执行计划?
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
最初由 lgtu 发布
[B]select count(id) from (select id from tabl1 minus select id from table2) [/B]


这样会不会有歧义阿/
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
最初由 cyr1974 发布
[B]

这样会不会有歧义阿/ [/B]


ID为唯一主键
会出现怎样的歧义,能否解释一下
回复

使用道具 举报

千问 | 2007-1-19 01:03:19 | 显示全部楼层
最初由 lgtu 发布
[B]select count(id) from (select id from tabl1 minus select id from table2) [/B]

楼主测试这个和not exists那个效率高没有??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行