SA Шпаргалка

Все ответы в 2 клика

Продвинутый

Что такое аномалия Lost Update (Потерянное обновление) и как ее избежать?

Lost Update возникает, когда две транзакции одновременно читают одну строку, изменяют ее и записывают обратно. Вторая транзакция затирает изменения первой.

Пример: На складе 10 айфонов. Транзакция А и Б одновременно читают "10". А продает 1 айфон и пишет "9". Б продает 2 айфона и пишет "8". Итог: 8 айфонов, хотя продали 3 (должно быть 7).

✅ Как избежать:
1. Пессимистичная блокировка: SELECT * FROM items WHERE id=1 FOR UPDATE; (Транзакция Б будет ждать).
2. Оптимистичная блокировка: Добавить колонку version и делать UPDATE ... WHERE version = X.

Сложная тема? Разберём на мок-интервьюЗаписаться на менторство →

Другие вопросы темы «Производительность SQL»

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»