1万6千条数据left join 特别慢 求优化sql

Herbe 2015-10-30 01:16:09
现在有两张表大约都是1万6千条左右 2张表left join 执行后大约27秒很慢 求优化

select tt.id,tt.email,tt.mobilenum from (select t.id,t.email,t.mobilenum from tmp_table t) tt left join
(select u.id,u.email from hui_user u where u.meetid = 411) usr on tt.email = usr.email ;

...全文
918 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobluesky 2015-11-04
  • 打赏
  • 举报
回复
引用 1 楼 mayanzs 的回复:
select tt.id,tt.email,tt.mobilenum from tmp_table tt where exists (select 1 from hui_user usr where usr.email=tt.email and usr.meetid=411);
这个可以,都用一张表的数据,完全可以exists,效率高很多~
binsweet 2015-11-04
  • 打赏
  • 举报
回复
select tt.id, tt.email, tt.mobilenum from tmp_table tt, hui_user u where tt.email = u.email(+) and u.meetid(+) = 411;
呦呦 2015-11-04
  • 打赏
  • 举报
回复
用exists 要快一些
天善智能 2015-11-01
  • 打赏
  • 举报
回复
发下执行计划
liuzhe_521 2015-10-30
  • 打赏
  • 举报
回复
两表连接的目的是什么 ?
小灰狼W 2015-10-30
  • 打赏
  • 举报
回复
看看执行计划 这个数据库是不是在自己的pc机或笔记本上建的那种……
陈灬风 2015-10-30
  • 打赏
  • 举报
回复
试一下这个: select tt.id, tt.email, tt.mobilenum from tmp_table tt, hui_user u where tt.email = u.email(+) and u.meetid = 411;
卖水果的net 2015-10-30
  • 打赏
  • 举报
回复
两张表结构及索引情况,也贴上来。
z123zjf 2015-10-30
  • 打赏
  • 举报
回复
我怎么感觉用不到hui_user这张表
mayanzs 2015-10-30
  • 打赏
  • 举报
回复
select tt.id,tt.email,tt.mobilenum from tmp_table tt where exists (select 1 from hui_user usr where usr.email=tt.email and usr.meetid=411);

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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