Что такое пессимистичная и оптимистичная блокировка?

Пессимистичная блокировка резервирует доступ к данным до завершения транзакции. Оптимистичный контроль позволяет работать без длительного захвата, но проверяет, не изменились ли данные перед сохранением.

Короткий ответ

Что ответить на собеседовании

Пессимистичная блокировка резервирует доступ к данным до завершения транзакции. Оптимистичный контроль позволяет работать без длительного захвата, но проверяет, не изменились ли данные перед сохранением.

Подробный разбор

Ответ с пояснениями

Пессимистичная блокировка резервирует доступ к данным до завершения транзакции. Оптимистичный контроль позволяет работать без длительного захвата, но проверяет, не изменились ли данные перед сохранением.

Пессимистичный пример — SELECT FOR UPDATE с последующим изменением в той же транзакции. Он удобен при высокой цене конфликта, но увеличивает ожидания и риск deadlock.

Оптимистичный пример — UPDATE с условием по version и увеличением версии. Если обновлено ноль строк, пользователь или код должен разрешить конфликт. Оптимистичный контроль не означает, что СУБД вообще не использует блокировки: сама запись всё равно требует внутренних механизмов синхронизации.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее