PostgreSQL 15 est disponible

Par:
fredericmazue

ven, 14/10/2022 - 12:09

Le PostgreSQL Global Development Group a annoncé  la sortie de PostgreSQL 15, la dernière version de cette célèbre base de données open source libre.

PostgreSQL 15 s'appuie sur les améliorations de performances des versions récentes avec des gains notables pour la gestion des charges de travail dans les déploiements locaux et distribués, y compris un tri amélioré. Cette version améliore l'expérience du développeur avec l'ajout de la commande populaire MERGE et ajoute plus de fonctionnalités pour observer l'état de la base de données.

"La communauté des développeurs PostgreSQL continue de créer des fonctionnalités qui simplifient l'exécution des charges de travail de données hautes performances tout en améliorant l'expérience des développeurs", a déclaré Jonathan Katz, membre de l'équipe PostgreSQL Core. "PostgreSQL 15 montre comment, grâce au développement de logiciels ouverts, nous pouvons fournir à nos utilisateurs une base de données idéale pour le développement d'applications et sûre pour leurs données critiques."

Amélioration des performances de tri et de la compression

Dans cette dernière version, PostgreSQL améliore ses algorithmes de tri en mémoire et sur disque, avec des benchmarks montrant des accélérations de 25 % à 400 % en fonction des types de données triés. L'utilisation de row_number(), rank(), dense_rank() et count() comme fonctions de fenêtre présente également des avantages en termes de performances dans PostgreSQL 15. Les requêtes utilisant SELECT DISTINCT peuvent désormais être exécutées en parallèle.

S'appuyant sur le travail de la version précédente de PostgreSQL pour autoriser les requêtes distantes asynchrones, le wrapper de données étrangères PostgreSQL, postgres_fdw, prend désormais en charge les commits asynchrones.

Les améliorations de performances de PostgreSQL 15 s'étendent à ses fonctions d'archivage et de sauvegarde. PostgreSQL 15 ajoute la prise en charge de la compression LZ4 et Zstandard (zstd) aux fichiers journaux à écriture anticipée (WAL), ce qui peut présenter des avantages à la fois en termes d'espace et de performances pour certaines charges de travail. Sur certains systèmes d'exploitation, PostgreSQL 15 ajoute la prise en charge des pages de prélecture référencées dans WAL pour accélérer les temps de récupération. La commande de sauvegarde intégrée de PostgreSQL, pg_basebackup, prend désormais en charge la compression côté serveur des fichiers de sauvegarde avec un choix entre gzip, LZ4 et zstd. PostgreSQL 15 inclut la possibilité d'utiliser des modules personnalisés pour l'archivage, ce qui élimine la surcharge liée à l'utilisation d'une commande shell.

Fonctionnalités de développement expressives

PostgreSQL 15 inclut la commande SQL standard MERGE. MERGE vous permet d'écrire des instructions SQL conditionnelles pouvant inclure des actions INSERT, UPDATE et DELETE dans une seule instruction.

Cette dernière version ajoute de nouvelles fonctions permettant d'utiliser des expressions régulières pour inspecter les chaînes : regexp_count(), regexp_instr(), regexp_like() et regexp_substr(). PostgreSQL 15 étend également la fonction range_agg pour agréger les types de données multi-gammes, qui ont été introduits dans la version précédente.

PostgreSQL 15 permet aux utilisateurs de créer des vues qui interrogent les données en utilisant les autorisations de l'appelant, et non du créateur de la vue. Cette option, appelée security_invoker, ajoute une couche de protection supplémentaire pour garantir que les appelants de vue disposent des autorisations appropriées pour travailler avec les données sous-jacentes.

Plus d'options pour la réplication logique

PostgreSQL 15 offre plus de flexibilité pour gérer la réplication logique. Cette version introduit le filtrage des lignes et des listes de colonnes pour les éditeurs, permettant aux utilisateurs de choisir de répliquer un sous-ensemble de données à partir d'une table. PostgreSQL 15 ajoute des fonctionnalités pour simplifier la gestion des conflits, notamment la possibilité d'ignorer la relecture d'une transaction en conflit et de désactiver automatiquement un abonnement si une erreur est détectée. Cette version inclut également la prise en charge de l'utilisation de la validation en deux phases (2PC) avec réplication logique.

Améliorations de la journalisation et de la configuration

PostgreSQL 15 introduit un nouveau format de journalisation : jsonlog. Ce nouveau format génère des données de journal à l'aide d'une structure JSON définie, ce qui permet de traiter les journaux PostgreSQL dans des systèmes de journalisation structurés.

Cette version donne aux administrateurs de base de données plus de flexibilité dans la façon dont les utilisateurs peuvent gérer la configuration de PostgreSQL, ajoutant la possibilité d'accorder aux utilisateurs l'autorisation de modifier les paramètres de configuration au niveau du serveur. De plus, les utilisateurs peuvent désormais rechercher des informations sur la configuration à l'aide de la commande \dconfig de l'outil de ligne de commande psql.

Autres changements notables

Les statistiques au niveau du serveur PostgreSQL sont désormais collectées dans la mémoire partagée, éliminant à la fois le processus de collecte de statistiques et l'écriture périodique de ces données sur le disque.

PostgreSQL 15 permet de faire d'un classement ICU le classement par défaut pour un cluster ou une base de données individuelle.

Cette version ajoute également une nouvelle extension intégrée, pg_walinspect, qui permet aux utilisateurs d'inspecter le contenu des fichiers journaux à écriture anticipée directement à partir d'une interface SQL.

PostgreSQL 15 révoque également l'autorisation CREATE de tous les utilisateurs, à l'exception d'un propriétaire de base de données du schéma public (ou par défaut).

PostgreSQL 15 supprime à la fois le mode "sauvegarde exclusive" obsolète depuis longtemps et la prise en charge de Python 2 de PL/Python.