假设我有一个查询,如下所示:
select * from remote_table
join local_table using(common_key)
其中,remote_table
是使用postgres_fdw
创建的外部表,而local_table
则是一个普通表。
local_table
很小(100行),而remote_table
很大(数百万行)。
看起来整个远程表都被拉取到本地进行连接,但将较小的表传输到远程服务器并在远程进行连接会更有效率。
有没有办法让postgres_fdw
这样做呢?
WITH cte AS (SELECT common_key FROM local_table) SELECT * FROM remote_table WHERE common_key IN (TABLE cte);
仔细想想:我怀疑那样行不通... - Erwin Brandstetter