我有一个包含两千万条记录的表A。有一个包含200,000条记录的表B。我想做一个连接,如下所示:
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中的行数是递增的,并且还会增加。
发布于 2021-10-25 23:13:54
Greenplum不支持索引。但是,这个查询很棘手,因为您的分布列是什么并不重要,由于以下原因,无法将连接放在同一位置。
恐怕我不确定查询是不是MPP友好的查询。
https://stackoverflow.com/questions/69715583
复制相似问题