banco-de-dados
PostgreSQL
Além de SQL puro, PostgreSQL específico entra em índices (B-tree vs. GIN), isolamento de transações, EXPLAIN ANALYZE e quando um relacional deixa de ser a escolha certa.
Tópicos por senioridade
- Em breve
Desafios práticos
Cenários reais pra resolver em voz alta, como numa entrevista de verdade — não é múltipla escolha.
- Cenário: uma query que ficou lenta em produção
Uma query que rodava em 50ms passou a levar 8 segundos depois que a tabela cresceu para 10 milhões de linhas. Como você investiga e o que provavelmente está acontecendo?
Perguntas mais cobradas
ver todas →- Médio
Quando criar um índice — e quando ele atrapalha
Índices aceleram leitura filtrada mas custam em cada escrita — não crie por reflexo.
- Difícil
Níveis de isolamento de transação no PostgreSQL
Read Committed (padrão) → Repeatable Read → Serializable, cada um fechando mais tipos de anomalia.
- Difícil
Cenário: uma query que ficou lenta em produção
Rode EXPLAIN ANALYZE primeiro; suspeite de sequential scan por falta de índice ou estatística desatualizada.
- Médio
Window functions vs. GROUP BY
GROUP BY colapsa linhas em grupos; window functions calculam agregados mantendo cada linha.
- Médio
Quando envolver uma operação em transação
Quando múltiplas escritas precisam ser tudo-ou-nada — uma falha no meio não pode deixar estado parcial.
- Difícil
Ler um EXPLAIN ANALYZE
Estimado vs real (divergência → ANALYZE); Seq Scan em tabela grande; o nó mais caro por actual time e loops; Rows Removed by Filter alto; BUFFERS pra cache vs disco.
- Médio
`jsonb` no PostgreSQL: quando usar e como indexar
jsonb pra dados semiestruturados/variáveis por linha (payloads, atributos por categoria). Campos estáveis → colunas normais. Indexe com GIN (contenção `@>`, existência `?`) ou B-tree numa expressão pra um campo.
- Difícil
MVCC, bloat e o papel do VACUUM
MVCC não apaga na hora: UPDATE/DELETE deixam versões mortas que o VACUUM recolhe. Autovacuum atrasado + escrita alta ou transação longa → tabelas/índices incham (bloat) → scans lentos e disco cheio.