Size: a a a

pgsql – PostgreSQL

2020 August 09

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Yaroslav Schekin
> Без этого вряд ли получится сделать уникальность поля в рамках всей таблицы

Почему "не получится"? Можно добиться того же эффекта и без этого.
Но любое такое решение в любом случае "дорогое" по производительности, как его ни реализовывай.

> сделать fk из несекционированной таблицы, на секционированную

Это и сейчас работает... если получилось создать уникальный индекс. ;)
Много ограничений )

Безусловно, иногда глобальный индекс будет медленее чем локальный (если в фильтре присутствует ключ по которому секционирована таблица), но будут ситуации когда он будет быстрее - будет проще перебрать его, чем перебрать сотню локальных.

Представьте, что поверх postgres строят OLAP кубы - разрезы данных будут самые разные, и фильтры могут попадать на одну секцию, а могут перебирать их все. Тут будет смысл в наличии двух одинаковый индексов - локального и глобального - да изменение данных будет крайне медленным, но обычно на таких системах ETL процессы не требуют высокой отзывчивости
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Konstantin Knizhnik
Ну я имел в виду использование партицирования и postgres_fdw для построения шардированного кластера. FDW не предполагает наличие связей между шардами, толи между координатором и шардами. А без этого нельзя сделать shuffle join. Вообще FDW  разрабатывался как механизм доступа к  различным базам, поэтому его сделали максимально универсальным. А всё что универсальное, обычно не слишком эффективное. У FDW проблемы со статистикой, с параллельным выполнением, с частичным вычислением агрегатов... Он добавляет достаточно большой оверхед (около трёх раз).
Понятно, спасибо!
Но это же всё же не про партционирование, а про шардирование...
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
ну с локальным партицированием ситуация гораздо лучше - там почти всё доделали
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Konstantin Knizhnik
ну с локальным партицированием ситуация гораздо лучше - там почти всё доделали
Да, и осталось ещё его нормально переделать, а то иногда возникает ощущение, что в некоторых местах его в планировщик забивали кувалдой. ;)
И вообще, как-то работа над партиционированием замедлилась, такое ощущение...
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Аггей Лоскутников
Много ограничений )

Безусловно, иногда глобальный индекс будет медленее чем локальный (если в фильтре присутствует ключ по которому секционирована таблица), но будут ситуации когда он будет быстрее - будет проще перебрать его, чем перебрать сотню локальных.

Представьте, что поверх postgres строят OLAP кубы - разрезы данных будут самые разные, и фильтры могут попадать на одну секцию, а могут перебирать их все. Тут будет смысл в наличии двух одинаковый индексов - локального и глобального - да изменение данных будет крайне медленным, но обычно на таких системах ETL процессы не требуют высокой отзывчивости
Вот это "изменение данных будет крайне медленным" может быть настолько плохо, что и партиционировать не захочется.
Если я правильно помню, сейчас ситуация такая, что (почти?) никому из hackers вообще не хочется что-то делать в этом направлении...
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Раньше основным драйвером в этом направлении было EDB. Сейчас они как-то охладели к этой затее. Им сейчас похоже не до того.
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Сейчас у нас в ПгПро Анастасия  работает над  автоматическим созданием партиций
источник

S

Spirit💎 in pgsql – PostgreSQL
Господа, добрый вечер! Хочу развернуть на локалке дамп с серверной бд. Делаю дамп, выкачиваю на локалку и пытаюсь импортировать в бд. Ругается на отсутствие template1. Вот полный лог моих действий: https://gist.github.com/clockdev/15fbff0dcc5330a2cf822500ca0ed789

Подскажите пожалуйста, не могу нагуглить какого-то адекватного решения. Локалка – macOS с Postgres.app
источник
2020 August 10

B

Bunk Bunkovich 🐈 in pgsql – PostgreSQL
Всем привет, подскажите плз по пгадмину

если я у себя в ноуте сменил диск, и работаю не на винде (он там был установлен), а на убунте

могу ли я перенести данные пгадмина к себе на рабочую ос на другом диске?

в инете не нагуглил
источник

B

Bunk Bunkovich 🐈 in pgsql – PostgreSQL
Всем спасибо, решил
источник

K

Kirill in pgsql – PostgreSQL
Всем привет! Подскажите в чем разница между IN и ANY? Насколько я понял это почти одно и тоже. Может какой то из них быстрее?
источник

EK

Evgeny Khitrinevich in pgsql – PostgreSQL
Kirill
Всем привет! Подскажите в чем разница между IN и ANY? Насколько я понял это почти одно и тоже. Может какой то из них быстрее?
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
maxp.dev
то есть не давать вставлять не уникальный элемент.
В массив строк?
источник

m

maxp.dev in pgsql – PostgreSQL
Ilia Zviagin
В массив строк?
в таблицу,
при условии, что такая строка уже есть в какой-либо записи
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
maxp.dev
И еще может кто в курсе -
вот есть табличка в пределах миллиона записей и пара к ней с форинкеем на бигинтах.

насколько сильно падает перформанс в таких случаях, если бигниты переделать в варчары?
Не существенно.
Думай лучше о доменной целостности данных
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
maxp.dev
в таблицу,
при условии, что такая строка уже есть в какой-либо записи
Я к тому, что ты запустил медведя на пасеку, сделал массив в реляционной СУБД - теперь будешь страдать, сам виноват.

Сделай проверку триггерами или плюнь вообще на эту проверку. Проверяй в приложении как-то
источник

m

maxp.dev in pgsql – PostgreSQL
Ilia Zviagin
Не существенно.
Думай лучше о доменной целостности данных
ну а все-таки, какой порядок падения перформанса?
я когда-то мерил что-то подобное, но тогда сервер у меня назывался Пентиум 133 :)
так что данные не актуальны
источник

m

maxp.dev in pgsql – PostgreSQL
Ilia Zviagin
Я к тому, что ты запустил медведя на пасеку, сделал массив в реляционной СУБД - теперь будешь страдать, сам виноват.

Сделай проверку триггерами или плюнь вообще на эту проверку. Проверяй в приложении как-то
ну монга вполне такое прожевывала, и тут хотелось бюы по минимуму менять схему.

и вечный русский вопрос "кто виноват" - вообще не кактит здесь.
есть только вопрос как лучше сделать в имеющихся условиях
источник

m

maxp.dev in pgsql – PostgreSQL
проверку триггерами, как именно предалгаешь?
напомню, что у нас read commited
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
Kirill
Всем привет! Подскажите в чем разница между IN и ANY? Насколько я понял это почти одно и тоже. Может какой то из них быстрее?
Нет разницы, если any вводится через =.

А так ANY по функционалу гораздо шире IN.

Но = ANY профессионалы не применяют, а ANY с любыми другими вводными операциями очень редко имеют смысл, и могут быть заменены на что-то другое, как правило, коррелированный подзапрос, и в итоге в практике программирования ANY не используется, его обсуждают только в учебниках по SQL
источник