предположим, у меня есть запрос вроде
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 сделать это?
WITH cte AS (SELECT common_key FROM local_table) SELECT * FROM remote_table WHERE common_key IN (TABLE cte);
Во втором случае: я сомневаюсь, что он может летать ... - person Erwin Brandstetter   schedule 16.04.2020