Le "partitionnement déclaratif des tables", c'est-à-dire le partitionnement en tant que fonctionnalité de premier ordre du SGBD avec sa propre syntaxe, était ajouté dans PostgreSQL 10 .
Dans les versions antérieures, vous pouvez obtenir le même effet avec un peu plus d'effort en utilisant "l'héritage de table". Il y a une page dans le manuel décrivant comment faire cela manuellement , résumé comme :
- Créez la table "maître", dont toutes les partitions hériteront.
- Créez plusieurs tables "enfants" qui héritent chacune de la table maître.
- Ajoutez des contraintes de table aux tables de partition pour définir les valeurs de clé autorisées dans chaque partition.
- Pour chaque partition, créez un index sur la ou les colonnes de clé, ainsi que tout autre index que vous pourriez souhaiter.
- Facultatif, définissez un déclencheur ou une règle pour rediriger les données insérées dans la table maître vers la partition appropriée.
- Assurez-vous que le paramètre de configuration restrict_exclusion n'est pas désactivé dans postgresql.conf. Si c'est le cas, les requêtes ne seront pas optimisées comme souhaité.
Pour faciliter cela, si vous ne pouvez pas passer à la version 10, vous pouvez utiliser une extension telle que pg_partman qui vous offre des fonctions supplémentaires pour configurer et gérer des ensembles de partitions.