首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化连接GreenPlum

优化连接GreenPlum
EN

Stack Overflow用户
提问于 2021-10-25 22:45:28
回答 1查看 45关注 0票数 0

我有一个包含两千万条记录的表A。有一个包含200,000条记录的表B。我想做一个连接,如下所示:

代码语言:javascript
复制
select *
from tableA a 
left join tableB b
on ((a.name1 = b.name1 OR a.name1 = b.name2) OR a.id = b.id)
and a.time > b.time
;

这非常耗时。我使用的是GreenPlum,所以不能使用索引。我如何优化这一点?表B中的行数是递增的,并且还会增加。

EN

回答 1

Stack Overflow用户

发布于 2021-10-25 23:13:54

Greenplum不支持索引。但是,这个查询很棘手,因为您的分布列是什么并不重要,由于以下原因,无法将连接放在同一位置。

  1. a.time或b.time不适合分发,因为它是一个">“运算符,您可以通过(name1,id)分发
  2. tableA,通过(name1,name2,id)分发tableB。但是要查看a.time > b.time是否令人满意,您仍然需要查看所有元组。

恐怕我不确定查询是不是MPP友好的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69715583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档