14 points par GN⁺ 2023-09-15 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2023-09-15
Commentaires Hacker News
  • La sortie de PostgreSQL 16 est comparée à un alunissage, tant elle représente un accomplissement majeur en raison de la quantité de travail bénévole et de réflexion nécessaires pour maintenir un vaste projet open source sur plusieurs décennies.
  • L’auteur du commentaire félicite l’équipe PostgreSQL et souligne l’importance de l’infrastructure logicielle, en la comparant à des infrastructures physiques comme les ponts et les routes.
  • PostgreSQL 16 introduit une nouvelle fonctionnalité, \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.
  • L’ajout des constructeurs et fonctions de prédicat SQL/JSON est considéré comme une amélioration de qualité de vie dans PostgreSQL 16.
  • Il y a de l’attente autour de la fonctionnalité d’E/S directes actuellement cachée derrière le paramètre debug_io_direct.
  • Une question est posée sur les améliorations apportées à la fonctionnalité « vacuum », utilisée pour optimiser les performances de la base de données.
  • Une question est également posée sur la possibilité qu’un chiffrement transparent par défaut soit envisagé dans de futures versions.
  • Un utilisateur exprime son enthousiasme pour cette nouvelle version, mais mentionne avoir installé PostgreSQL 15 sur la dernière Debian et devoir peut-être se renseigner sur les nouvelles fonctionnalités qui pourraient lui être utiles.