"Particionamento de tabela declarativo", que é o particionamento como um recurso de primeira classe do DBMS com sua própria sintaxe, foi adicionado no PostgreSQL 10 .
Nas versões anteriores, você pode obter o mesmo efeito com um pouco mais de esforço usando "herança de tabela". Há uma página no manual descrevendo como fazer isso manualmente , resumido como:
- Crie a tabela "mestre", da qual todas as partições serão herdadas.
- Crie várias tabelas "filhas" que herdam da tabela mestre.
- Adicione restrições de tabela às tabelas de partição para definir os valores de chave permitidos em cada partição.
- Para cada partição, crie um índice na(s) coluna(s) de chave, bem como quaisquer outros índices que desejar.
- Opcionalmente, defina um gatilho ou regra para redirecionar os dados inseridos na tabela mestra para a partição apropriada.
- Certifique-se de que o parâmetro de configuração constraint_exclusion não esteja desabilitado em postgresql.conf. Se for, as consultas não serão otimizadas como desejado.
Para facilitar, se você não puder atualizar para a versão 10, use uma extensão como pg_partman que oferece funções adicionais para configurar e gerenciar conjuntos de partições.