Результаты поиска
Блокировки, уровни изоляции и дедлоки
Зачем это знать:
-
Частая причина “всё медленно” — ожидание блокировок, а не CPU.
-
Аналитику важно уметь заложить правила работы с транзакциями в требованиях/интеграциях.
Связанные темы:
Мониторинг и диагностика PostgreSQL
MVCC и блокировки
- MVCC снижает конфликты “чтение vs запись”, но блокировки всё равно есть:
- DDL,
- конкурирующие записи в одни и те же строки,
- явные блокировки/SELECT FOR UPDATE,
- уникальные индексы и конкурирующие вставки.
Уровни изоляции (на уровне идеи)
-
Чем выше изоляция, тем больше гарантий и потенциальных конфликтов.
-
Важно согласовать ожидания: “можем ли видеть фантомы/неповторяемое чтение” и т.д.
Дедлоки
- Возникают, когда транзакции держат взаимные ресурсы и ждут друг друга.
Практика:
-
единый порядок захвата ресурсов,
-
короткие транзакции,
-
минимизировать “человек в транзакции” (не держать транзакцию во время внешних вызовов).