【发布时间】:2019-01-28 21:56:06
【问题描述】:
假设我有一个类似的查询
select * from remote_table
join local_table using(common_key)
其中 remote_table 是 FOREIGN TABLE 和 postgres_fdw 和 local_table 是常规表。
local_table 很小(100 行),remote_table 很大(数百万行)。
看起来远程表被完全拉出并在本地连接,而将较小的表发送到远程服务器并远程连接会更有效。
有没有办法让 postgres_fdw 做到这一点?
【问题讨论】:
-
CTE 可能允许下推?我没有测试:
WITH cte AS (SELECT common_key FROM local_table) SELECT * FROM remote_table WHERE common_key IN (TABLE cte);不过第二个:我怀疑它会飞…… -
另一个 FDW 有一个相关问题,我想出了一个不起作用的想法。不过可能适用于 postgres_fdw (和 Postgres 12?)。你可能想看看:stackoverflow.com/a/61493138/939860
标签: postgresql postgresql-10 postgres-fdw