Size: a a a

pgsql – PostgreSQL

2020 June 09

MD

Memory Doctor in pgsql – PostgreSQL
проще сделать логику в приложении
источник

MD

Memory Doctor in pgsql – PostgreSQL
можно в тригере рекурсивно идти вверх по иерархии и проверять
источник

E

Eugeny in pgsql – PostgreSQL
Memory Doctor
никак
Спасибо..
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Eugeny
В описании таблицы organization только два поля: id и название. В таблице сотрудников есть поле "id_head". И единственное требование - чтоб этот руководитель состоял в той же организации, что и подчинённый
Вы же, вроде, писали, что это руководитель сотрудника, а не организации?
Если нет —  у Вас уже схема неправильная.
Вот, ради интереса, вариант без триггеров (примерный):

CREATE TABLE employees (
id_emp serial PRIMARY KEY,
Name text NOT NULL,
id_org integer REFERENCES organization,
id_head integer REFERENCES employees ON UPDATE CASCADE,
UNIQUE (id_emp, id_org)
);

CREATE TABLE organization (
id_org integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
Name text NOT NULL,
director_id integer
);

ALTER TABLE organization ADD FOREIGN KEY (director_id, id_org) REFERENCES employees(id_emp, id_org);
источник

E

Eugeny in pgsql – PostgreSQL
Yaroslav Schekin
Вы же, вроде, писали, что это руководитель сотрудника, а не организации?
Если нет —  у Вас уже схема неправильная.
Вот, ради интереса, вариант без триггеров (примерный):

CREATE TABLE employees (
id_emp serial PRIMARY KEY,
Name text NOT NULL,
id_org integer REFERENCES organization,
id_head integer REFERENCES employees ON UPDATE CASCADE,
UNIQUE (id_emp, id_org)
);

CREATE TABLE organization (
id_org integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
Name text NOT NULL,
director_id integer
);

ALTER TABLE organization ADD FOREIGN KEY (director_id, id_org) REFERENCES employees(id_emp, id_org);
Да, руководитель сотрудника
источник

л

линкер in pgsql – PostgreSQL
привет.
помогите пожалуйста новичку составить sql запрос.. есть таблица messages. я знаю только два peer_id и мне необходимо получить по одному последнему сообщению из каждого пира. думаю применить сортировку по created_at и как нибудь прикрутить LIMIT, но совсем ничего не получается..
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
линкер
привет.
помогите пожалуйста новичку составить sql запрос.. есть таблица messages. я знаю только два peer_id и мне необходимо получить по одному последнему сообщению из каждого пира. думаю применить сортировку по created_at и как нибудь прикрутить LIMIT, но совсем ничего не получается..
Ну если на скорую руку могу предложить такой вариант: SELECT text FROM messages WHERE created_at = (SELECT MAX(created_at) FROM messages WHERE peer_id = $1 AND peer_id = $2);
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
Но думаю стоит поискать вариант по лучше, можно упростить реализацию
источник

s

sexst in pgsql – PostgreSQL
Alexey Stavrov
Для кеша использую memcached и redis.
Tarantool офигенен для задач кеширования. Да, из коробки там ничего нет, нужно самому и логику на lua писать и "таблички" делать. Но быстродействие весьма и весьма, хранилка чуть понавороченнее нежели key-value, есть транзакции, плюс возможность вообще любую бизнес-логику  написать меня лично подкупили с потрохами.
А, да. Был у них и  относительно штатный способ для закоса под memcached.
источник

2_

2flower _ in pgsql – PostgreSQL
линкер
привет.
помогите пожалуйста новичку составить sql запрос.. есть таблица messages. я знаю только два peer_id и мне необходимо получить по одному последнему сообщению из каждого пира. думаю применить сортировку по created_at и как нибудь прикрутить LIMIT, но совсем ничего не получается..
last_value
https://postgrespro.ru/docs/postgresql/12/functions-window
если нужны именно агрегаты а не окна,
https://wiki.postgresql.org/wiki/First/last_(aggregate)
источник

Ф

ФСБ Беларуси... in pgsql – PostgreSQL
привет.
хочу поставить postgresql на ssd, но при этом хочу не убить быстро ресурс ssd. есть идеи? (СУБД будет обслуживать 10 мелких сайтиков, nextcloud и gitlab)
Из ресурсов хост-системы (proxmox)  - Intel DC S4500 480 GB в RAID 1  + Toshiba P300 2TB в RAID 1

я так понимаю, нужно выносить на HDD WAL / pg_stat_tmp / pg_stat?
источник

П

Павел П. in pgsql – PostgreSQL
Чат, туплю к ночи: каким запросом проверить что реплика - синхронная?
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
ФСБ Беларуси
привет.
хочу поставить postgresql на ssd, но при этом хочу не убить быстро ресурс ssd. есть идеи? (СУБД будет обслуживать 10 мелких сайтиков, nextcloud и gitlab)
Из ресурсов хост-системы (proxmox)  - Intel DC S4500 480 GB в RAID 1  + Toshiba P300 2TB в RAID 1

я так понимаю, нужно выносить на HDD WAL / pg_stat_tmp / pg_stat?
Ну есть грубый вариант, в конфигурации к Postgres параметры записи, по контрольным точкам и по заполнению буфера, можно увеличить эти параметры и увеличить общий буфер, в целом в этом можно видеть решения проблемы, но есть риски потерять много данных при внезапной отключении сервера.
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
ФСБ Беларуси
привет.
хочу поставить postgresql на ssd, но при этом хочу не убить быстро ресурс ssd. есть идеи? (СУБД будет обслуживать 10 мелких сайтиков, nextcloud и gitlab)
Из ресурсов хост-системы (proxmox)  - Intel DC S4500 480 GB в RAID 1  + Toshiba P300 2TB в RAID 1

я так понимаю, нужно выносить на HDD WAL / pg_stat_tmp / pg_stat?
вам ваших 1.86 PBW хватит на ближайшие пару десятков лет
источник

s

sexst in pgsql – PostgreSQL
Victor Yegorov
ну… RAC тоже в известной степени “костыли”…
В известной? ;) Я лично не уверен что сабж вообще можно относить к кластерам как таковым. Сторадж то один.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
sexst
В известной? ;) Я лично не уверен что сабж вообще можно относить к кластерам как таковым. Сторадж то один.
потому и костыль же
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
Павел П.
Чат, туплю к ночи: каким запросом проверить что реплика - синхронная?
Можно попробовать создать событие Listen|Notify (на глазок определить), но честно не проверял как это работает в реплике и можно ли этим проверить синхронность
источник

s

sexst in pgsql – PostgreSQL
lnuynxa
кокроачдб жутко тормозное нечто
Ну так пардон, оверхед синхронизации по сети никто не отменял. Поставьте cut-through свитчи, максимально быстрые сетевые карты, соединяйте всё оптикой и используйте самые толстые из доступных вам линков - без этого никуда.
источник

2_

2flower _ in pgsql – PostgreSQL
Павел П.
Чат, туплю к ночи: каким запросом проверить что реплика - синхронная?
я нашел
SELECT * FROM pg_stat_replication
sync_state
но не знаю верно или нет.
источник

П

Павел П. in pgsql – PostgreSQL
2flower _
я нашел
SELECT * FROM pg_stat_replication
sync_state
но не знаю верно или нет.
sync_state  async
Спасибо!
источник