PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pourquoi ne peut pas créer de table de partitionnement

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 :

  1. Créez la table "maître", dont toutes les partitions hériteront.
  2. Créez plusieurs tables "enfants" qui héritent chacune de la table maître.
  3. Ajoutez des contraintes de table aux tables de partition pour définir les valeurs de clé autorisées dans chaque partition.
  4. Pour chaque partition, créez un index sur la ou les colonnes de clé, ainsi que tout autre index que vous pourriez souhaiter.
  5. 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.
  6. 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.