Sobes.tech
Senior

Que níveis de isolamento de transações do PostgreSQL conheces?

sobes.tech IA

Resposta da IA

No PostgreSQL, existem quatro níveis de isolamento de transações definidos pelo padrão SQL:

  1. Read Uncommitted — o nível de isolamento mais baixo. Permite ler dados que ainda não foram confirmados (leitura suja). No PostgreSQL, na prática, comporta-se como Read Committed, pois não suporta leituras sujas.

  2. Read Committed — nível padrão. A transação vê apenas os dados que foram confirmados no momento de cada consulta individual. Podem ocorrer alterações feitas por outras transações entre consultas dentro da mesma transação.

  3. Repeatable Read — a transação vê uma imagem dos dados no momento em que começou. Todas as consultas dentro da transação veem os mesmos dados, mesmo que outras transações os modifiquem e confirmem. Previna leituras não repetíveis, mas permite leituras fantasmas.

  4. Serializable — o nível de isolamento mais rigoroso. Garante a serialização completa das transações, prevenindo leituras fantasmas e garantindo um comportamento equivalente à execução sequencial das transações.

Exemplo de configuração do nível de isolamento:

BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- Operações SQL
COMMIT;