Partitionnement declaratif

PostgreSQL 🔴 Senior

Définition

PostgreSQL découpé une table logique en plusieurs tables physiques (partitions) selon une stratégie RANGE, LIST ou HASH déclarée via PARTITION BY. Chaque partition se crée avec CREATE TABLE ... PARTITION OF, et le partition pruning éliminé automatiquement les partitions non concernées par une requête.

Analogie

Comme classer des archives papier par année dans des cartons séparés plutôt que dans un seul immense classeur : on ne sort que le carton de l'année recherchée.

Exemple de code

CREATE TABLE measurement (
  city_id int, logdate date, peaktemp int
) PARTITION BY RANGE (logdate);

CREATE TABLE measurement_y2026m01 PARTITION OF measurement
  FOR VALUES FROM ('2026-01-01') TO ('2026-02-01');

Cas d'usage

Archiver ou purger de très grandes tables temporelles (logs, mesures) en droppant une partition entière en une opération instantanée.

Anti-pattern

Oublier d'inclure la colonne de partitionnement dans une contrainte UNIQUE/PRIMARY KEY : PostgreSQL l'exige.

Termes liés

#sgbd#interview#database#postgresql

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre