В чём отличие аномалий грязного чтения (dirty read) и неповторяющегося чтения (non-repeatable read)?

Dirty read — чтение ещё не зафиксированного изменения другой транзакции. Non-repeatable read — повторное чтение одной строки видит уже другое зафиксированное значение.

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

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

Dirty read — чтение ещё не зафиксированного изменения другой транзакции. Non-repeatable read — повторное чтение одной строки видит уже другое зафиксированное значение.

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

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

Dirty read — чтение ещё не зафиксированного изменения другой транзакции. Non-repeatable read — повторное чтение одной строки видит уже другое зафиксированное значение.

При dirty read первая транзакция может откатиться, и прочитанное значение никогда не станет действительным. При неповторяющемся чтении другая транзакция успела commit между двумя SELECT. Это отличается от phantom read, связанного с изменением набора подходящих строк. Какие аномалии допускаются, зависит от уровня изоляции и реализации СУБД, а не только от наличия транзакции.

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

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

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

Подробнее