Spring middle
Что такое Dirty / non-repeatable / phantom read?
Ответ
Dirty — чтение незакоммиченных данных. Non-repeatable — два чтения одной строки дают разный результат. Phantom — два SELECT с WHERE возвращают разное число строк.
Разбор: Ключевое различие: dirty read — это чтение именно НЕзакоммиченных данных (вариант про коммит описывает обычное корректное чтение). Non-repeatable касается изменения/удаления уже прочитанной строки, а phantom — изменения числа строк под условием WHERE из-за вставки. Распространённая ловушка — путать phantom (новые строки) с non-repeatable (изменение существующей строки) и подменять dirty read на lost update или deadlock.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.