Как стать автором
Обновить

Комментарии 34

Распараллеливание — хорошая вещь только для DW баз где запросов меньше ядер. Для OLTP задач где как правило одновременних запросов больше чем ядер общая производительность может деградировать. Паралелизм может дать общее ускорение только на небольшом количестве задач.

Тригер на уровне операторов вообще зачетная вещь как и многоколоночная статистика.
Ну и партиции.

В целом PostgreSQL движется в правильном направлении.

вот только pgAdmin4 движется в другом направлении...

Может потому что им мало кто пользуется ввиду низкой полезности? psql же есть

pgAdmin3 я пользовался много, так как не профессиональный DBA.
А вот от 4-ого стойкий рвотный рефлекс. Видимо надо осваивать psql.

Переходите на бобра (Dbeaver) даже в публичной версии поддерживаются почти любые базы, включая pg.
Я давно на DataGrip сижу для этих целей. Годная штука, как и почти все от JetBrains. А вот бобер как-то не зашел: слишком много надо делать руками и слишком мало автокомплита, на который я уже подсел во всех IDEшках
psql осваивать надо в любом случае!
Могу посоветовать pgcli как альтернативу psql: автокомплит, цвета, pretty print.
Есть же GUI-альтерантивы, причем бесплатные. SQL-manager lite, DBeaver etc.

Попробуйте DBeaver. Бесплатный, поддерживает разные СУБД.

Тем временем вышел dbForge Studio for PostgreSQL, v1.0 Express
Потихоньку двигаю своё. Желающие могут повлиять на вектор развития.

Скомпилированных релизов нет. Как собирать непонятно. Иссьюсы отключены.


Скриншоты красивые (и напоминают SQLyog, так что можно случайно получить большую аудиторию пользователей), но попользоваться этим не представляется возможным :(

У БД узкое место почти всегда io, распараллеливание позволит даже для OLTP получить выигрыш для много дисковой конфигурации, а оно почти всегда есть для нагруженных баз.
А можно примеры OLTP-запросов, получающих «выигрыш» при распараллеливании?
НЛО прилетело и опубликовало эту надпись здесь
Тут в сторону логической репликации можно смотреть. Но поскольку в X+1 структура данных может несколько отличаться от X, все это получается очень нетривиально.
А есть примеры, где такая возможность реализована?
НЛО прилетело и опубликовало эту надпись здесь
А-а, я видимо не так понял. X и X+1 — эти версии PostgreSQL, а не вашего проекта? Если так, то да, ровно логическая репликация и нужна.
Но справедливости ради, pgupgrade и так позволяет обновиться за считанные минуты.
НЛО прилетело и опубликовало эту надпись здесь
В 9.5 логическая репликация только в виде расширения pg_logical. Родная начиная с 10-ки.

Насчет rsync и реплик. Владимир Бородин из Яндекса рассказывал, как они обновлялись: simply.name/ru/upgrading-postgres-to-9.4.html Понятно, что все надо пробовать и отлаживать, но в итоге у них получилось достаточно быстро.
НЛО прилетело и опубликовало эту надпись здесь
так 10-ка сможет приконнектиться к 9.5 + pg_logical?

Зуб не дам, но скорее всего нет. Надо ставить pglogical и на 9.5, и на 10.
НЛО прилетело и опубликовало эту надпись здесь
Затруднителен (хотя и возможен). И установка pglogical — точно не самое большое затруднение в этом деле…
НЛО прилетело и опубликовало эту надпись здесь
Не-не. Я про то, что родная 10-ая репликация вряд ли совместима с pglogical 9.5.
А pglogical 9.5 -> pglogical 10 безусловно будет работать.
НЛО прилетело и опубликовало эту надпись здесь
Родная репликация на pglogical и основана, но отстает по возможностям. Будет жить и развиваться. Совместимость планируют поддерживать.

Транслируются, грубо говоря, измененные/удаленные/вставленные строки, а не SQL-операторы. Эти изменения потом применяются к таблицам подписчика. DDL пока не транслируется совсем.
Editions, к счастью, Постгресу не нужны, у него DDL с рождения транзакционный.
Это можно делать с помощью логической репликации. Начиная с PostgreSQL 9.4 (там логическая репликация реализована в расширении pglogical ).
А начиная с 10-й версии она есть уже в самом постгресе, и настраивается очень легко. Главное, осторожнее с DDL в переходный период!
НЛО прилетело и опубликовало эту надпись здесь
Дело не в сложных транзакциях.
Вот тут все есть, postgrespro.ru/docs/postgresql/10/logical-replication-restrictions.html
DDL логической репликацией не поддерживается, соответственно надо менять схему данных руками на мастере и реплике.
Также надо учесть, что не переносятся последовательности (значит, руками на реплике нужно открутить их вперёд с запасом)
Не переносятся также секционированные таблицы и блобы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий