Comments 11
Привет, классная статья, спасибо, что напомнили мне о магии Postgres! 😊
Что вы думаете о dblink в современных версиях? Может быть, он тоже будет работать? Мне также интересно, как FDW работает у вас в продакшене - есть ли подводные камни?
Еще раз спасибо!
У Коли Постгрес в Докере, а вы такие сложные вопросы задаёте :)
Если посмотреть какие статьи Коля когда то писал, то можно забрать свои слова обратно.
Докер для настольного макетирования удобная платформа. На мой вкус. С вашими вкусами спорить не буду.
Что не так с postgres в docker?
У postgres_fdw есть куча настроек для оптимизации DML-операций, которых нет в dblink. Зато через dblink можно делать то же самое + дёргать функции и процедуры, а в postgres_fdw это умышленно не добавляют. Ну и dblink лучше подходит для эмуляции автономных транзакций внутри одной БД
Хайлоад сделать на них не получится, но для вспомогательных операций типа логирования транзакций вполне пойдёт
С FDW стоит быть аккуратнее - учитывать преобразование дерево плана - запрос - новое дерево плана + всякие особенности навроде использования курсоров на удаленной стороне, что исключает параллельные планы. Ну и сама технология pushdown тоже не все позволяет пушить.
В общем, если посмотреть на TPC-H и сравнить результаты выполнения запросов над локальными таблицами и таблицами, подключенными по FDW, то все достаточно печально получается.
Есть же документация.
Открою Вам секрет. У PG ещё триллион расширений. А ещё они все документированы.
Если уж писать про расширение, то хотя бы упомянуть про его подводные камни. Где оно подойдёт, где не подойдет и почему.
Например, dblink и postgres_fdw хранят пароль в открытом виде. Прям killer фича
Postgres, как настроить запросы между разными БД