Melhores Práticas Avançadas de SQL
SQL avançado compensa quando é legível e medido.
Como Usar Esta Lista
- Exija
EXPLAINpara novas consultas CTE/window/lateral. - Armazene SQL complexo no repositório, não em strings de ORM ocultas.
A - Clareza
- Nomeie CTEs por etapa de negócio. Não
cte1. - Comente suposições invariantes. Valores de status documentados.
- Limite SQL dinâmico a casos comprovados. Risco de injeção e de plano.
B - Desempenho
-
EXPLAIN ANALYZEantes da produção. Especialmente nós de janela e ordenação. - Indexe chaves
PARTITION BYeJOIN. Corresponda àORDER BYda janela. - Materialize CTEs caras uma vez quando reutilizadas.
AS MATERIALIZED.
C - Segurança
- Proteja a profundidade da CTE recursiva. Detecção de ciclo.
- Teste linhas de partição
NULL. Frames de janela com dados esparsos. - Versionamento de SQL com migrações. Diff revisáveis.
FAQs
ORMs devem ser donos de SQL avançado?
Deixe o ORM fazer CRUD; arquivos SQL brutos para relatórios e pipelines complexos.
Relacionados
- Funções de Janela - analytics
- Noções Básicas de EXPLAIN - planos
Versões de Stack: Esta página foi escrita para PostgreSQL 18.4 (estável 18, manutenção 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x e PostGIS 3.5+.