Оптимистический контроль обычно проверяет version при обновлении; пессимистический заранее удерживает lock. SELECT FOR UPDATE блокирует выбранные строки для конфликтующих изменений до конца транзакции.
Какие оптимистические и пессимистические блокировки вы использовали? Может ли блокироваться вся таблица? Что такое SELECT FOR UPDATE?
Оптимистический контроль обычно проверяет version при обновлении; пессимистический заранее удерживает lock. SELECT FOR UPDATE блокирует выбранные строки для конфликтующих изменений до конца транзакции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Оптимистический контроль обычно проверяет version при обновлении; пессимистический заранее удерживает lock. SELECT FOR UPDATE блокирует выбранные строки для конфликтующих изменений до конца транзакции.
Типы и совместимость locks зависят от СУБД. Помимо строк могут захватываться табличные или диапазонные блокировки; некоторые системы поддерживают escalation. Для PostgreSQL FOR UPDATE не означает запрета обычного чтения всей таблицы. В ответе о личном опыте приведите реальный инвариант, длительность транзакции и способ обработки конфликтов.