| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5267 人关注过本帖
标题:数据量过大,跑批时间太长,怎么优化left join 同一张表两次
只看楼主 加入收藏
小白求指教
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-8-25
收藏
 问题点数:0 回复次数:2 
数据量过大,跑批时间太长,怎么优化left join 同一张表两次
查询结果需要插入另一张表,插入的数据过亿,能优化么
select
 T1.a
 T1.b
 .
 .
 .
 T2.c AS 2c
 T3.c AS 3c
from a T1
 left join b T2
  on T1.a=T2.a
  and T2.b=1
 left join b T3
  on T1.a=T3.a
  and T3.b=2
 
搜索更多相关主题的帖子: left 过大 优化 数据 join 
2020-08-25 17:31
雕龙
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-1-3
收藏
得分:0 
你为什么要join 2次呢
 .
  T2.c AS 2c
  T3.c AS 3c
为了 把c变成2列?如果不用把c变2列 那如下:
from a T1
  left join b T2
   on T1.a=T2.a
   and (T2.b=1 or T2.b=2)


[此贴子已经被作者于2022-1-3 11:57编辑过]

2022-01-03 11:50
ye19134
Rank: 2
等 级:论坛游民
帖 子:10
专家分:20
注 册:2022-1-26
收藏
得分:0 
回复 楼主 小白求指教

可以给两表的a字段加个索引呀,这样联表时应该会快很多。
但是创建索引会消耗大量资源,会导致数据库死锁,最好在非高峰时段创建。
2022-01-26 10:37
快速回复:数据量过大,跑批时间太长,怎么优化left join 同一张表两次
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017059 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved