Spring middle
Dirty / non-repeatable / phantom read — пример каждого?
Ответ
Dirty: чтение незакоммиченных данных. Non-repeatable: два чтения одной строки дают разный результат. Phantom: два чтения с WHERE возвращают разное число строк.
Разбор: Правильные примеры строго различают, что меняется между двумя чтениями: dirty — чтение незакоммиченных изменений, non-repeatable — другое значение в той же строке, phantom — другое количество строк под условием. Ловушка дистракторов в том, что они меняют феномены местами: пример с COUNT(*) и вставками — это как раз phantom, а не non-repeatable; чтение после ROLLBACK или ситуация lost update вообще не относятся к dirty read.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.