Lá, existem dois tipos de consultas que são executadas no meu aplicativo:
DELETE FROM tbl1 WHERE user_id = 1;
INSERT INTO tbl1 VALUES (...), (...), ...;
e
UPDATE tbl2 WHERE id = 1 SET ...;
DELETE FROM tbl3 WHERE tbl2_id = 1;
INSERT INTO tbl3 VALUES (...), (...), ...;
DELETE FROM tbl4 WHERE tbl2_id = 1;
INSERT INTO tbl4 VALUES (...), (...), ...;
O ORM que estou usando define automaticamente o nível de isolamento da transação REPEATABLE READ
e gostaria de saber se é a escolha certa para obter o melhor desempenho. Meu objetivo é apenas executar tudo ou nada (de 2 transações acima) e não me importo com leituras...
Então, qual nível de isolamento será melhor para melhor desempenho no meu caso?
READ COMMITTED
impõe menos sobrecargas, pois o PostgreSQL não precisa fazer rastreamento de dependência.Na prática, a diferença provavelmente será mínima.
O nível de isolamento deve ser selecionado com base na exatidão, não no desempenho. Não é possível determinar se
READ COMMITTED
é suficiente a partir das consultas fornecidas, mas não vejo um motivo forte para suspeitar que não seja.É quase certo que existem muitas outras maneiras de melhorar o desempenho antes de brincar com coisas como níveis de isolamento.