PostgreSQL 16 est disponible, la dernière version de la base de données open source apporte des améliorations au parallélisme des requêtes et à la réplication logique.

PostgreSQL 16 augmente ses performances, avec des améliorations notables au niveau du parallélisme des requêtes, du chargement de données en masse et de la réplication logique. Cette version comporte de nombreuses fonctionnalités pour les développeurs et les administrateurs, notamment une meilleure syntaxe SQL/JSON, de nouvelles statistiques de surveillance pour vos charges de travail et une plus grande flexibilité dans la définition des règles de contrôle d'accès pour la gestion des politiques à travers de grandes flottes.

"Alors que les modèles de bases de données relationnelles évoluent, PostgreSQL continue de gagner en performance dans la recherche et la gestion des données à grande échelle", déclare Dave Page, membre de l'équipe de base de PostgreSQL. "PostgreSQL 16 offre aux utilisateurs plus de méthodes pour augmenter et réduire leur charge de travail, tout en leur donnant de nouveaux moyens d'obtenir des informations et d'optimiser la façon dont ils gèrent leurs données".

PostgreSQL, un système de gestion de données innovant reconnu pour sa fiabilité et sa robustesse, bénéficie de plus de 25 ans de développement open source de la part d'une communauté mondiale de développeurs et est devenu la base de données relationnelle open source préférée des organisations de toutes tailles.

Nom : 1.jpg
Affichages : 80509
Taille : 17,7 Ko

Amélioration des performances

PostgreSQL 16 améliore les performances des fonctionnalités existantes de PostgreSQL grâce à de nouvelles optimisations du planificateur de requêtes. Dans cette dernière version, le planificateur de requêtes peut paralléliser les jointures FULL et RIGHT, générer des plans mieux optimisés pour les requêtes qui utilisent des fonctions agrégées avec une clause DISTINCT ou ORDER BY, utiliser des tris incrémentaux pour les requêtes SELECT DISTINCT, et optimiser les fonctions de fenêtre pour qu'elles s'exécutent plus efficacement. Elle améliore également les "anti-joints" RIGHT et OUTER, ce qui permet aux utilisateurs d'identifier les lignes non présentes dans une table jointe.

Cette version inclut des améliorations pour le chargement en masse en utilisant COPY dans les opérations simples et concurrentes, avec des tests montrant jusqu'à 300% d'amélioration des performances dans certains cas. PostgreSQL 16 ajoute le support de l'équilibrage de charge dans les clients qui utilisent libpq, et des améliorations à la stratégie de vide qui réduisent la nécessité de geler une table complète. De plus, PostgreSQL 16 introduit l'accélération CPU en utilisant SIMD dans les architectures x86 et ARM, résultant en des gains de performance lors du traitement des chaînes ASCII et JSON, et en effectuant des recherches dans les tableaux et les sous-transactions.

Réplication logique

La réplication logique permet aux utilisateurs de streamer des données vers d'autres instances PostgreSQL ou vers des abonnés qui peuvent interpréter le protocole de réplication logique de PostgreSQL. Dans PostgreSQL 16, les utilisateurs peuvent effectuer la réplication logique à partir d'une instance en standby, ce qui signifie qu'une instance en standby peut publier des changements logiques vers d'autres serveurs. Cela offre aux développeurs de nouvelles options de distribution de la charge de travail, par exemple, l'utilisation d'un standby plutôt que d'un primaire plus occupé pour répliquer logiquement les changements vers les systèmes en aval.

De plus, PostgreSQL 16 apporte plusieurs améliorations de performance à la réplication logique. Les abonnés peuvent maintenant appliquer des transactions importantes en utilisant des travailleurs parallèles. Pour les tables qui n'ont pas de clé primaire, les abonnés peuvent utiliser des index B-tree au lieu de balayages séquentiels pour trouver les lignes. Sous certaines conditions, les utilisateurs peuvent également accélérer la synchronisation initiale des tables en utilisant le format binaire.

Il y a plusieurs améliorations du contrôle d'accès à la réplication logique dans PostgreSQL 16, y compris le nouveau rôle prédéfini pg_create_subscription, qui donne aux utilisateurs la possibilité de créer de nouvelles souscriptions logiques. Enfin, cette version commence à ajouter le support de la réplication logique bidirectionnelle, introduisant la fonctionnalité de réplication de données entre deux tables de différents éditeurs.

Expérience des développeurs

PostgreSQL 16 ajoute plus de syntaxe du standard SQL/JSON, incluant des constructeurs et des prédicats tels que JSON_ARRAY(), JSON_ARRAYAGG(), et IS JSON. Cette version introduit également la possibilité d'utiliser les underscores pour les séparateurs de milliers (par exemple 5_432_000) et les littéraux entiers non-décimaux, tels que 0x1538, 0o12470, et 0b1010100111000.

Les développeurs utilisant PostgreSQL 16 bénéficient également de nouvelles commandes dans psql. Cela inclut \bind, qui permet aux utilisateurs de préparer des requêtes paramétrées et d'utiliser \bind pour substituer les variables (par exemple SELECT $1::int + $2::int \bind 1 2 \g).

PostgreSQL 16 améliore le support général des collations de texte, qui fournissent des règles sur la façon dont le texte est trié. PostgreSQL 16 se construit avec le support ICU par défaut, détermine la locale ICU par défaut à partir de l'environnement, et permet aux utilisateurs de définir des règles de collation ICU personnalisées.

Surveillance

Un aspect clé de l'optimisation des performances des charges de travail des bases de données est la compréhension de l'impact de vos opérations d'E/S sur votre système. PostgreSQL 16 introduit pg_stat_io, une nouvelle source de métriques d'E/S clés pour une analyse granulaire des modèles d'accès aux E/S.

De plus, cette version ajoute un nouveau champ à la vue pg_stat_all_tables qui enregistre un timestamp représentant la date de la dernière analyse d'une table ou d'un index. PostgreSQL 16 rend également auto_explain plus lisible en enregistrant les valeurs passées dans les instructions paramétrées, et améliore la précision de l'algorithme de suivi des requêtes utilisé par pg_stat_statements et pg_stat_activity.

Contrôle d'accès et sécurité

PostgreSQL 16 fournit des options plus fines pour le contrôle d'accès et améliore d'autres fonctionnalités de sécurité. La version améliore la gestion des fichiers pg_hba.conf et pg_ident.conf, y compris en permettant la correspondance des expressions régulières pour les noms d'utilisateurs et de bases de données et les directives include pour les fichiers de configuration externes.

Cette version ajoute plusieurs paramètres de connexion client orientés sécurité, y compris require_auth, qui permet aux clients de spécifier les paramètres d'authentification qu'ils sont prêts à accepter d'un serveur, et sslrootcert="system", qui indique que PostgreSQL devrait utiliser l'autorité de certification (CA) de confiance fournie par le système d'exploitation du client. De plus, la version ajoute le support de la délégation de crédences Kerberos, permettant aux extensions telles que postgres_fdw et dblink d'utiliser des crédences authentifiées pour se connecter à des services de confiance.

À propos de PostgreSQL

PostgreSQL est la base de données open source la plus avancée au monde, avec une communauté globale de milliers d'utilisateurs, de contributeurs, d'entreprises et d'organisations. Construit sur plus de 35 ans d'ingénierie, à partir de l'Université de Californie, Berkeley, PostgreSQL a continué avec un rythme de développement inégalé. L'ensemble des fonctionnalités de PostgreSQL n'est pas seulement comparable aux systèmes de bases de données propriétaires, mais les dépasse en termes de fonctionnalités avancées, d'extensibilité, de sécurité et de stabilité.

Le lien de téléchargement de PostgreSQL 16 est ici.

Source : PostgreSQL

Et vous ?

Quel est votre avis sur cette nouvelle mise à jour ?

Voir aussi :

Le projet PostgreSQL étudie un changement majeur qui pourrait sacrifier des fonctionnalités importantes
Pour les bénéfices attendus, cela vaut-il la peine ?


La majorité des serveurs PostgreSQL sur Internet ne seraient pas sécurisés, selon Jonathan Mortensen, alors qu'il est souvent considéré comme un système plus fiable et plus robuste que MySQL

MySQL est une « base de données plutôt médiocre », déclare un ingénieur Oracle en partance, PostgreSQL est une meilleure option pour un SGBD open source, selon lui