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:
-
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.
-
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.
-
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.
-
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;