Пессимистическая блокировка предусматривает предварительную блокировку (SELECT ... FOR UPDATE), предполагая вероятность конфликтов и блокируя другие транзакции. Оптимистическая блокировка ничего не блокирует заранее — она проверяет столбец версии во время записи и отклоняет/повторяет попытку, если строка изменилась, предполагая, что конфликты редки.
Пример
-- Optimistic locking patternUPDATE accounts
SET balance =900, version = version +1WHERE id =1AND version =5; -- 0 rows updated => someone else changed it first, retry
Итог
Пессимистическая блокировка получает блокировку спереди (`SELECT...
В чем разница между оптимистической и пессимистической блокировкой? · Sobeso