The Daily Commit · Édition de rubrique La une PHP AI Dev EN DE FR ES

Independent. Nonpartisan. Untested in production.

jeudi 9 juillet 2026 R/PROGRAMMING (TOP)
Lectures!

Comment réaliser le pruning lors de requêtes sur colonnes non partitionnées dans PostgreSQL

Le post examine des techniques permettant d’activer le partition pruning dans PostgreSQL lorsque les requêtes filtrent sur des colonnes hors de la clé de partitionnement.

R/PROGRAMMING (TOP) — Il présente des approches concrètes pour conserver les gains de performance sans modifier le schéma, utile aux développeurs travaillant sur de grands jeux de données partitionnés.

Le partition pruning de PostgreSQL élimine automatiquement les partitions inutiles pendant la planification des requêtes, améliorant considérablement les performances sur les tables partitionnées. Cependant, le pruning fonctionne généralement seulement lorsque les filtres de requête correspondent à la clé de partitionnement. Lors du filtrage sur des colonnes non partitionnées, l'optimiseur ne peut pas ignorer les partitions en toute sécurité et doit les scanner toutes – les avantages du partitionnement disparaissent.

L'article présente des techniques pratiques pour réaliser le pruning sans altérer le schéma. Une approche ajoute une colonne calculée ou supplémentaire qui corrèle avec la clé de partitionnement, permettant à l'optimiseur de déduire les limites de partitions à partir des filtres sur colonnes non-clés. Une autre stratégie utilise des contraintes de base de données et des conditions de vérification pour aider PostgreSQL à déterminer quelles partitions pourraient contenir des lignes correspondantes.

D'autres méthodes incluent la restructuration des requêtes pour inclure les conditions de clé de partitionnement aux côtés des filtres non-clés, l'utilisation de vues matérialisées qui pré-agrègent les données par partition, ou la réécriture personnalisée des requêtes dans la logique applicative. L'article souligne que ces techniques préservent les gains de performance du partitionnement tout en conservant la flexibilité pour les requêtes qui ne filtrent pas naturellement sur la clé originale – précieux pour les charges complexes sur de grands volumes de données.

Lire la source originale (en anglais) ↗

Évaluer cet article : 0

Tribune des lecteurs

Pas encore de contributions — lance le débat.

◀ En bref — Page D1

All stories real, just louder · The Daily Commit · Édition écran · Mentions légales · Politique de confidentialité