PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Buscando linhas de várias tabelas com UNION ALL ou usando uma tabela em produção?


Em geral, acho que o uso extensivo de UNION sugere um design de banco de dados ruim. Há casos em que UNION e UNION ALL fazem sentido, mas devem ser relativamente raros fora das expressões recursivas de tabelas comuns.

O PostgreSQL fornece um número bastante grande de opções para manter o desempenho em uma única tabela gerenciável e, como você apontou, índices parciais são uma maneira muito boa de gerenciar esse problema.

O maior problema em dividir tabelas de tal forma que UNION declarações são comuns é que torna o gerenciamento de chaves primárias e estrangeiras bastante problemático. Em geral, é quase sempre muito melhor garantir que sua estrutura de dados seja clara e gerenciável primeiro e depois se preocupar com a otimização do que se preocupar com a otimização e tentar tornar a solução otimizada gerenciável.