Tables partitionnées Partitioned tables
Fonctionnalité de SGBD : logiquement une seule table, physiquement découpée en plusieurs « partitions » selon une clé de partition. Cas d'usage : les grandes tables (10 M de lignes et plus), les séries temporelles, le sharding multi-tenant. Partitionnement déclaratif dans PostgreSQL depuis la version 10 (2017) ; MySQL le propose depuis la 5.1.
Stratégies : RANGE (par plage de dates ou de valeurs numériques), LIST (valeurs précises), HASH (pour une répartition homogène). Le gain : l'élagage de partitions — une requête avec un WHERE sur la clé de partition ne parcourt que les partitions concernées. Côté maintenance, supprimer une vieille partition est instantané, en O(1), là où un DELETE est en O(N). Contreparties : un planificateur de requêtes plus complexe, des clés étrangères entre partitions délicates, un support inégal selon les ORM. PostgreSQL 11 et suivants gèrent clés étrangères et index. Usage classique : des tables de logs partitionnées par mois — les données de plus de douze mois disparaissent d'un coup.