Paris, le 13 octobre 2022
PostgreSQL sort sa version 15 ! Voici le communiqué publié en français par le PostgreSQL Global Development Group. Un grand merci à toutes les personnes contribuant au développement de PostgreSQL, à sa promotion et à la traduction des publications.
Le PostgreSQL Global Development Group annonce aujourd’hui la sortie de PostgreSQL 15, dernière version de la base de données open source de référence.
PostgreSQL 15 s’appuie sur les améliorations de performance des dernières versions. Elle apporte des gains visibles dans la gestion des charges de travail, autant sur les déploiements locaux que distribués. Cela inclut l’amélioration des opérations de tri. Cette version améliore aussi l’expérience développeur avec l’ajout de la très attendue commande MERGE, et apporte de nouvelles possibilités d’observation de l’état de la base de données.
« La communauté des développeurs de PostgreSQL continue de fournir des fonctionnalités simplifiant l’exécution de charges de travail de données à hautes performances, tout en améliorant l’expérience développeur » déclare Jonathan Katz, membre de la PostgreSQL Core Team. « PostgreSQL 15 démontre comment, grâce au développement de logiciel libre, nous pouvons fournir à nos utilisateurs une base de données adaptée au développement d’applications et sûre pour leurs données critiques. »
PostgreSQL, système innovant de gestion des données, connu pour sa fiabilité et sa robustesse, bénéficie depuis plus de 25 ans d’un développement open source par une communauté de développeurs mondiale. Il est devenu le système de gestion de bases de données relationnelles de référence pour des organisations de toute taille.
Amélioration de la performance de tri et compression
Dans cette dernière version, PostgreSQL améliore ses algorithmes de tri en mémoire et sur disque, avec des tests de performance montrant des gains de 25% à 400% selon le type des données triées. L’utilisation de row_number(), rank(), dense_rank() et count() comme fonctions de fenêtrages bénéficie aussi d’améliorations de performances dans PostgreSQL 15. Les requêtes utilisant l’instruction SELECT DISTINCT peuvent être exécutées en parallèle.
S’appuyant sur le travail effectué dans les (versions précédentes de PostgreSQL](https://www.postgresql.org/about/press/presskit14/) pour autoriser les requêtes asynchrones distantes, le wrapper de données distantes de PostgreSQL, postgres_fdw, autorise désormais les commits asynchrones.
Des améliorations de performance sont apportées à l’archivage et la sauvegarde. PostgreSQL 15 ajoute le support des compressions LZ4 et Zstandard (zstd) pour les fichiers WAL (write-ahead log). Ces compressions permettent des gains en taille et en performance pour certaines charges de travail. Sur certains systèmes d’exploitation, PostgreSQL 15 supporte la préextraction du contenu des fichiers WAL, accélérant ainsi les temps de restauration. La commande interne de sauvegarde de PostgreSQL, pg_basebackup, supporte désormais la compression des fichiers de sauvegarde côté serveur avec le choix de gzip, LZ4 et zstd. PostgreSQL 15 offre la possibilité d’utiliser des modules complémentaires pour l’archivage, éliminant la nécessité d’utiliser une commande shell.
Fonctionnalités pour développeurs
PostgreSQL 15 ajoute la commande MERGE du standard SQL. MERGE permet d’écrire des requêtes SQL conditionnelles combinant des actions INSERT, UPDATE et DELETE en une seule requête.
Cette version ajoute de nouvelles fonctions de traitement des expressions rationnelles afin d’inspecter des chaînes de caractères : regexp_count(), regexp_instr(), regexp_like() et regexp_substr(). PostgreSQL 15 étend aussi la fonction range_agg() pour agréger les types de données multirange, introduite dans la version précédente.
PostgreSQL 15 permet aux utilisateurs de créer des vues pour requêter des données en utilisant les droits de l’appelant et non ceux du propriétaire de la vue. Cette option, appelée security_invoker, ajoute une couche de sécurité supplémentaire pour s’assurer que les appelants de vues ont les bons droits pour travailler avec les données sous-jacentes.
Plus d’options avec la réplication logique
PostgreSQL 15 offre plus de flexibilité dans la gestion de la réplication logique. Cette version introduit le filtrage par ligne et les listes de colonnes pour les fournisseurs, permettant aux utilisateurs de ne répliquer qu’un sous-ensemble des données d’une table. PostgreSQL 15 simplifie la gestion des conflits. Il est ainsi possible de ne pas rejouer une transaction en conflit et de désactiver automatiquement une souscription si une erreur est détectée. Il est désormais possible d’utiliser la validation en deux phases (2PC) avec la réplication logique.
Amélioration de la journalisation et configuration
PostgreSQL 15 introduit un nouveau format de journalisation : jsonlog. Ce nouveau format autorise la sortie des données de journalisation dans une structure JSON définie. Cela permet aux journaux de PostgreSQL d’être traités par des systèmes de journalisation structurés.
Cette version offre plus de flexibilité aux administrateurs de bases de données dans la gestion de la configuration de PostgreSQL par les utilisateurs. Les administrateurs peuvent accorder la permission aux utilisateurs de modifier des paramètres de configuration serveur. De plus, les utilisateurs peuvent désormais rechercher des informations de configuration en utilisant la commande \dconfig depuis l’outil en ligne de commande psql.
Autres changements importants
Les statistiques serveur PostgreSQL sont maintenant collectées en mémoire partagée, éliminant à la fois le processus de collecte de statistiques et les écritures régulières sur disque de ces dernières.
PostgreSQL 15 permet de définir une collation ICU comme collation par défaut d’un cluster ou d’une base de données.
Cette version ajoute aussi une nouvelle extension intégrée, pg_walinspect, qui permet aux utilisateurs d’inspecter les fichiers WAL depuis une interface SQL.
PostgreSQL 15 supprime la permission ‘CREATE’ sur le schéma public (ou le schéma par défaut) pour tous les utilisateurs, sauf le propriétaire de la base de données.
PostgreSQL 15 supprime le mode « exclusive backup » déprécié depuis longtemps, ainsi que le support de Python 2 pour PL/Python.