Size: a a a

pgsql – PostgreSQL

2020 December 22

РЖ

Роман Жарков... in pgsql – PostgreSQL
Alexander Nikitin
Дак я бэктрэйс им послал Ещё корку надо? Там 4 Гб
Не, к ней нужен бинарник из которого она получилась и всякое ещё окружение.
Лучше уметь воспроизводить или даже надёжный рецепт выдать.
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Ок, если ответят, то приложу
источник

A

Alexey in pgsql – PostgreSQL
всем добрый вечер, настраиваю реплику на 12 postgres, выполняю
pg_basebackup -D /var/lib/postgresql/12/main -v -R -X stream -P -C -S standby1 -d "host=[PRIMARY_IP] user=[USER] sslcert=/root/certs/client.crt sslkey=/root/certs/client.key sslrootcert=/root/certs/server.crt sslmode=verify-ca"
все ок проходит, но при попытке запустить standby, сервак перестает видеть сертификаты, ругается на
root certificate file "/root/certs/server.crt" does not exist (primary_conninfo норм генерится)
уже и права 0600 раздавал и chown postgres:postgres, он все равно их не видит, мб кто-нибудь сталкивался
источник

SG

Sergey Gr in pgsql – PostgreSQL
Alexey
всем добрый вечер, настраиваю реплику на 12 postgres, выполняю
pg_basebackup -D /var/lib/postgresql/12/main -v -R -X stream -P -C -S standby1 -d "host=[PRIMARY_IP] user=[USER] sslcert=/root/certs/client.crt sslkey=/root/certs/client.key sslrootcert=/root/certs/server.crt sslmode=verify-ca"
все ок проходит, но при попытке запустить standby, сервак перестает видеть сертификаты, ругается на
root certificate file "/root/certs/server.crt" does not exist (primary_conninfo норм генерится)
уже и права 0600 раздавал и chown postgres:postgres, он все равно их не видит, мб кто-нибудь сталкивался
А где он так ругается?
источник

A

Alexey in pgsql – PostgreSQL
Sergey Gr
А где он так ругается?
в var/log
источник

VJ

Vladimir Juriev in pgsql – PostgreSQL
Максим Цветков
Добрый день!
Есть запрос вида

SELECT
<fields>
 FROM
  SUBQUERY 1
   INNER JOIN
  SUBQUERY 2
   INNER JOIN
  SUBQUERY 3
   INNER JOIN
 ...
 SUBQUERY N
  INNER JOIN
-- ~50 000 строк
ORDER BY <fields>
LIMIT 100

Выполнение запроса уходит в бесконечность, хотя каждый подзапрос выполняется за секунду.

Если добавить сортировку в подзапросы, то весь запрос начинает отрабатывать за 10 сек.  

SELECT
<fields>
 FROM
  SUBQUERY 1 ORDER BY
   INNER JOIN
  SUBQUERY 2 ORDER BY
   INNER JOIN
  SUBQUERY 3 ORDER BY
   INNER JOIN
 ...
 SUBQUERY N ORDER BY
  INNER JOIN
-- ~50 000 строк
ORDER BY <fields>
LIMIT 100

В чем тут магия ? Где про это можно почитать?
Есть подозрение, что помогает limit 100 с order by финальным, который, видимо, сочетается с order by в подзапросах. Nested loop'ы быстрее получают уже отсортированные данные и возвращает первые 100 результатов.

Если финальный order by + limit убрать и попытаться сделать count, скорость сохраняется? Если да, то расскажите, коли до причин докопаетесь.
источник

A

Alexey in pgsql – PostgreSQL
Sergey Gr
А где он так ругается?
он запускается, все ок, там есть все данные, которые он из wal забрал на момент команды, но дальше реплицировать не хочет
источник

A

Alexey in pgsql – PostgreSQL
потому что не может к primary  подключиться
источник

SG

Sergey Gr in pgsql – PostgreSQL
Alexey
в var/log
А если стать пользователем  
 sudo su - postgres

этот самый файл прочитать можно?
источник

A

Alexey in pgsql – PostgreSQL
Sergey Gr
А если стать пользователем  
 sudo su - postgres

этот самый файл прочитать можно?
не может, спасибо большое! я правда не очень понимаю, почему не может, они postgres принадлежат, но сейчас просто в директорию /var/lib/postgres перекину, должно работать, еще раз спасибо большое!
источник

VJ

Vladimir Juriev in pgsql – PostgreSQL
https://pgday.ru/files/pgmaster14/max.boguk.query.optimization.pdf

Здесь пара похожих case'ов была (с pushdown limit/order by в subquery, приводящим к ускорению).
источник

R

Rustam in pgsql – PostgreSQL
Подскажите хотя бы пример триггера для данного случая:

Есть 2 таблицы

tb1
id
name
status

tb2
id
id_tb1
name

при добавлении записи в tb2 со связью в tab1 триггер обновляет имеющие связи записи в поле status
источник

МЦ

Максим Цветков... in pgsql – PostgreSQL
Vladimir Juriev
https://pgday.ru/files/pgmaster14/max.boguk.query.optimization.pdf

Здесь пара похожих case'ов была (с pushdown limit/order by в subquery, приводящим к ускорению).
Спасибо, буду пробовать.
источник

К

Кайши in pgsql – PostgreSQL
#Вакансия  В веб-студию  требуются программисты
Обязательно: TypeScript с платформой NodeJS, работа с современными СУБД (Postgres, Mysql)
Желательно, но на первое время опционально: Понимание принципов SOLID, написание автоматических тестов используя jest, умение работать с Docker / Kubernetes (Есть возможность обучения)

Предоставить примеры работ, резюме, отзывы

Зп в месяц от 25к рублей. Рублей
(Зависит от количества проектов и потраченного на их реализацию времени)
Работа удалённая. Занятость  проектная.

Задача реализовывать чат-ботов в телеграмме.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Rustam
Подскажите хотя бы пример триггера для данного случая:

Есть 2 таблицы

tb1
id
name
status

tb2
id
id_tb1
name

при добавлении записи в tb2 со связью в tab1 триггер обновляет имеющие связи записи в поле status
попробуйте сами сделать:
- составьте запрос, который меняет связанную таблицу
- посмотрите в документации примеры как создать триггер
- сделайте триггер который будет говорить на каждую вставку "trigger fired"
- потом засуньте туда запрос составленный, заменив нужные места на NEW.id_tbl1

писать всё за вас очевидно что никто не хочет
источник

R

Rustam in pgsql – PostgreSQL
Victor Yegorov
попробуйте сами сделать:
- составьте запрос, который меняет связанную таблицу
- посмотрите в документации примеры как создать триггер
- сделайте триггер который будет говорить на каждую вставку "trigger fired"
- потом засуньте туда запрос составленный, заменив нужные места на NEW.id_tbl1

писать всё за вас очевидно что никто не хочет
понятно, кому это надо, но мне бы хотя бы свежий пример из этой оперы, пишу пытаюсь пока без успешно
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Rustam
понятно, кому это надо, но мне бы хотя бы свежий пример из этой оперы, пишу пытаюсь пока без успешно
покажите UPDATE который составили
источник

R

Rustam in pgsql – PostgreSQL
Victor Yegorov
покажите UPDATE который составили
сделал по другому немного делал копировал данные из одной табл  в другую, но потом понял, что дальше это будет не выход, по этому сейчас начну заново писать сброшу сюда и можно в личку продублирую Вам?
источник

DS

David Shiko in pgsql – PostgreSQL
Всем привет. скажите пожалуйста почему нет результатов?

bot_db=# SELECT * FROM users;
id | user_id |    name     | goal | gender | birthdate  | country | city | comment
----+------------+-------------+------+--------+------------+---------+------+---------
 1 |  1773 | david_shiko |    3 |      1 | 1990-12-22 |         |      |
(1 row)

db=# SELECT * FROM users WHERE comment != 'foo';
id | user_id | name | goal | gender | birthdate | country | city | comment
----+------------+------+------+--------+-----------+---------+------+---------
(0 rows)
источник

AD

Artemiy Dubovoy in pgsql – PostgreSQL
David Shiko
Всем привет. скажите пожалуйста почему нет результатов?

bot_db=# SELECT * FROM users;
id | user_id |    name     | goal | gender | birthdate  | country | city | comment
----+------------+-------------+------+--------+------------+---------+------+---------
 1 |  1773 | david_shiko |    3 |      1 | 1990-12-22 |         |      |
(1 row)

db=# SELECT * FROM users WHERE comment != 'foo';
id | user_id | name | goal | gender | birthdate | country | city | comment
----+------------+------+------+--------+-----------+---------+------+---------
(0 rows)
NULL — это буквально отсутсвие значения. Когда вы указываете условие != ‘something’, вы говорите постгресу — выведи мне все значения, которые не равны something. А NULL — это не значение, поэтому в выборку оно не попадает. Вам нужно добавить в WHERE инструкцию OR IS NULL
источник