IT-словарь › Базы данных › Пессимистичный контроль конкурентности

Пессимистичный контроль конкурентности

Базы данных Svenska → Обновлено: 2026-10-18

Стратегия, которая исходит из того, что конфликты вероятны, и потому блокирует данные заранее (например, SELECT ... FOR UPDATE), заставляя другие транзакции ждать. «Сначала заблокируй, потом работай» — противоположность оптимистичному подходу.

Механика: прежде чем изменить данные, транзакция берёт блокировку на строки; остальные, желающие тронуть те же строки, ждут её снятия (при commit или rollback). Выигрыш: гарантия, что никто больше не изменит данные, пока вы работаете, — никаких сюрпризов и «потерянных обновлений», всё предсказуемо.

Цена — меньшая конкурентность (ожидание), риск взаимных блокировок и плохая применимость, когда конфликты на деле редки (блокировки тратятся впустую). Лучше всего подходит там, где конфликты часты, а повторять работу дорого, — например, баланс счёта при высокой конкуренции. Оптимистичный контроль, наоборот, даёт всем работать свободно и обнаруживает конфликт только при фиксации (проверка версий или ошибка сериализации); он лучше, когда конфликты редки. Выбор зависит от частоты конфликтов.

← Назад к словарю