Использую PGSQL. Есть таблица записей ~ 1000K записей https://www.db-fiddle.com/f/efkuMVy21JWNTE1HyTgYYk/0
CREATE TABLE forms (
id serial PRIMARY KEY,
account int not null,
author text,
salary int NOT NULL
);
insert into forms(account, author, salary) values
(1, 'Иванов', 30),
(1, 'Петров', 40),
(2, 'Сидоров', 40),
(2, 'Сергеев', 50)
ERROR: deadlock detected
DETAIL: Process 3415 waits for ShareLock on transaction 1958114794; blocked by process 87442.
Process 87442 waits for ShareLock on transaction 1958114529; blocked by process 3415.
HINT: See server log for query details.
BEGIN ISOLATION LEVEL READ COMMITTED READ WRITE;
SET LOCAL statement_timeout = '5000ms';
SELECT PG_ADVISORY_XACT_LOCK("lock_id") FROM (
SELECT UNNEST('{1100889}'::BIGINT[]) AS "lock_id"
) LocksId
RESET statement_timeout
Есть ли какие-нибудь универсальные решения таких проблем? Может кто-то сталкивался, есть общие советы? Можно ли почитать что-нибудь по данному вопросу?