[英]How to get postgres_fdw to push queries with small LIMITs to the foreign server?
[英]postgres_fdw: possible to push data to foreign server for join?
假设我有一个类似的查询
select * from remote_table
join local_table using(common_key)
其中 remote_table 是带有postgres_fdw
的FOREIGN TABLE
, local_table
是常规表。
local_table
很小(100 行)而remote_table
很大(数百万行)。
看起来远程表被整体拉取并在本地加入,此时将较小的表传送到远程服务器并远程加入会更有效。
有没有办法让 postgres_fdw 做到这一点?
你不能用连接来做到这一点,因为不同服务器上的表之间的连接总是在本地执行。
你可以尝试的是:
SELECT *
FROM (SELECT *
FROM remote_table
WHERE common_key IN (SELECT common_key FROM local_table)
) a
JOIN local_table USING (common_key);
我没有测试它,所以我不确定它是否会起作用,但我的想法是使用一个可以下推的外部表扫描条件,并尽可能减少获取的数据量。
您是否尝试将本地数据部署到外部服务器上的临时表中,然后将其加入到外部表中? 不确定您的流程,或者这对您是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.