O Que É um Phantom Read?
Um phantom read é uma anomalia em que uma transação executa a mesma query de intervalo duas vezes e a segunda execução retorna linhas extras que outra transação confirmou nesse ínterim. As linhas originais permanecem inalteradas, mas o conjunto de resultados cresceu. Apenas o nível de isolamento serializable previne totalmente os phantom reads.
Por que isso importa
Phantom reads quebram lógicas que assumem que o resultado de uma query é estável dentro de uma transação, como verificações do tipo contar-depois-agir. Saber que eles existem indica quando o isolamento serializable é justificado.
Guias relacionados
What Is a Dirty Read?A dirty read happens when a transaction reads data another transaction has changed but not yet committed, ris…
What Is a Transaction Isolation Level?An isolation level sets how much one transaction can see of others in progress, trading consistency guarantee…
What Is Pessimistic Locking?Pessimistic locking takes a lock on data as soon as it is read, blocking other transactions from changing it…