DevGuideTK
← Trilha Backend

Níveis de isolamento

O que duas transações simultâneas enxergam uma da outra e as anomalias que cada nível permite.

O nível de isolamento define o que uma transação enxerga das outras que rodam ao mesmo tempo. Quanto mais forte o nível, menos anomalias passam, e mais transações falham e precisam ser repetidas.

Os bancos vêm num nível intermediário por padrão, e cada um o implementa de um jeito. Código correto num banco pode perder dados em outro.

  • Leitura suja, leitura não repetível e fantasma: ler dados que mudam no meio do caminho.
  • Atualização perdida: duas transações leem, calculam e gravam por cima uma da outra.
  • Escrita enviesada: cada transação respeita a regra sozinha, e juntas a violam.
  • Só o nível serializável barra todas, e exige repetir a transação quando ele recusa.