- PostgreSQL 16 améliore les performances avec des progrès notables en matière de parallélisme des requêtes, de chargement massif de données et de réplication logique
- Introduit davantage de syntaxe SQL/JSON, de nouvelles statistiques de monitoring pour les charges de travail, ainsi qu'une plus grande flexibilité pour définir les règles de contrôle d'accès
Améliorations des performances
- Le planificateur de requêtes peut désormais paralléliser les jointures FULL et RIGHT, générer des plans plus optimisés pour les requêtes utilisant des clauses DISTINCT ou ORDER BY, exploiter le tri incrémental pour les requêtes SELECT DISTINCT et optimiser les fonctions de fenêtre
- Le chargement massif avec COPY a été amélioré pour les opérations uniques comme concurrentes, avec dans certains cas des performances en hausse jusqu'à 300 %
- Introduction d'une accélération CPU via SIMD sur les architectures x86 et ARM, améliorant les performances lors du traitement des chaînes ASCII et JSON, ainsi que lors de la recherche dans les tableaux et sous-transactions
Réplication logique
- Il est désormais possible d'effectuer une réplication logique à partir d'une instance en veille (standby), ouvrant de nouvelles options de répartition de charge
- Utiliser une instance standby au lieu d'un primaire très sollicité pour répliquer les changements vers l'aval
- Les performances de la réplication logique ont également été améliorées
- Les abonnés peuvent appliquer de grosses transactions à l'aide de workers parallèles
- Pour les tables sans clé primaire, il est possible de trouver les lignes via un index B-tree au lieu d'un balayage séquentiel
- Dans certaines conditions, le format binaire peut accélérer la synchronisation initiale des tables
Expérience développeur
- Ajout de davantage de syntaxe issue du standard SQL/JSON, y compris des constructeurs et prédicats tels que JSON_ARRAY(), JSON_ARRAYAGG() et IS JSON
- Il est désormais possible d'utiliser des underscores dans les grands nombres (5_432_000)
\bind a été ajouté à psql, permettant d'écrire des requêtes avec paramètres et de les remplacer par des variables
- Amélioration de la prise en charge du tri de texte
Monitoring
- Ajout de
pg_stat_io, qui fournit des métriques permettant d'analyser finement les schémas d'accès I/O
- Ajout dans la vue
pg_stat_all_tables de champs timestamp enregistrant la dernière fois qu'une table ou un index a été scanné
auto_explain devient plus lisible grâce à l'enregistrement des valeurs passées aux instructions paramétrées
Contrôle d'accès et sécurité
- Des options plus fines sont proposées pour le contrôle d'accès
- Amélioration d'autres fonctionnalités de sécurité, notamment la gestion des fichiers pg_hba.conf et pg_ident.conf, ainsi que l'ajout de plusieurs paramètres de connexion client orientés sécurité
1 commentaires
Commentaires Hacker News
\bind, qui gagne en popularité parce qu’elle permet d’exécuter des requêtes paramétrées de la même manière que le font les applications.debug_io_direct.