« Cette dernière version de PostgreSQL fait progresser la capacité de nos utilisateurs à gérer les charges de données à l'échelle, améliore l'observabilité et contient de nouvelles fonctionnalités qui aident les développeurs d'applications », a expliqué Magnus Hagander, membre de l'équipe principale de PostgreSQL, dans un billet de blogue jeudi. « PostgreSQL 14 témoigne de l'engagement de la communauté PostgreSQL mondiale à répondre aux commentaires et à continuer à fournir un logiciel de base de données innovant qui est déployé par des organisations de toutes tailles », a-t-il ajouté. Voici ci-dessous les points forts de PostgreSQL 14.
Commodités JSON et Multiranges
PostgreSQL supporte la manipulation des données JSON depuis la version 9.2 de PostgreSQL, bien que la récupération des valeurs utilise une syntaxe unique. À partir de PostgreSQL 14 vous pouvez maintenant accéder aux données JSON en utilisant des souscriptions. Par exemple, la requête suivante fonctionne maintenant :
Code SQL : | Sélectionner tout |
1 2 | SELECT ('{ "postgres" : { "release" : 14 }}'::jsonb)['postgres']['release'] |
Cela aligne PostgreSQL sur la syntaxe communément reconnue pour la récupération d'informations à partir de données JSON. Le PGDG explique en outre que le cadre d'inscription ajouté à PostgreSQL 14 peut être généralement étendu à d'autres structures de données imbriquées, et est aussi appliqué au type de données hstore dans cette version. Les types d'intervalles, qui sont également apparus dans PostgreSQL 9.2, prennent maintenant en charge les intervalles non contigus grâce à l'introduction du type de données "multirange".
L'équipe explique qu'un multirange est une liste ordonnée de plages qui ne se chevauchent pas, ce qui permet aux développeurs d'écrire des requêtes plus simples pour traiter des séquences complexes de plages. Les types de plages natifs de PostgreSQL (dates, times, numbers) supportent maintenant aussi le multirange, et d'autres types de données peuvent être étendus pour tirer profit du support de ce nouveau type de données.
Tim Pitzer, vice-président senior de l'informatique et des opérations chez Comscore, explique que sa société est ravie d'utiliser PostgreSQL pour suivre les informations sur les performances et les métadonnées de ces films. « Notre base de données PostgreSQL transactionnelle contient les informations et l'intelligence analytique utilisées par les directeurs de cinéma du monde entier pour planifier et surveiller la sortie de pratiquement tous les films jamais réalisés. Au cœur de notre entrepôt de données unifié, nous comptons sur la rapidité et la solide fiabilité de PostgreSQL pour notre activité », a déclaré Pitzer.
Amélioration des performances pour les charges de travail lourdes
PostgreSQL 14 offre une amélioration significative du débit pour les charges de travail qui utilisent de nombreuses connexions, certains benchmarks montrant une vitesse multipliée par deux. Cette version poursuit les récentes améliorations apportées à la gestion des index B-tree en réduisant le gonflement des index sur les tables dont les index sont fréquemment mis à jour.
PostgreSQL 14 introduit la possibilité de canaliser les requêtes vers une base de données, ce qui peut améliorer de manière significative les performances sur les connexions à latence élevée ou pour les charges de travail avec de nombreuses petites opérations d'écriture (INSERT/UPDATE/DELETE). Comme il s'agit d'une fonctionnalité côté client, vous pouvez utiliser le mode pipeline avec n'importe quelle base de données PostgreSQL moderne avec le client version 14 ou un pilote client construit avec la version 14 de libpq.
Améliorations pour les charges de travail distribuées
Les bases de données PostgreSQL distribuées vont bénéficier de PostgreSQL 14. En utilisant la réplication logique, PostgreSQL peut désormais diffuser les transactions en cours vers les abonnés, avec des avantages significatifs en matière de performances pour l'application de transactions importantes sur les abonnés. PostgreSQL 14 ajoute également plusieurs autres améliorations de performance au système de décodage logique qui alimente la réplication logique.
Les wrappers de données étrangères, qui sont utilisés pour travailler avec des charges de travail fédérées à travers PostgreSQL et d'autres bases de données, peuvent maintenant exploiter le parallélisme des requêtes dans PostgreSQL 14. Cette version implémente cette capacité dans postgres_fdw, le wrapper de données étrangères qui s'interface avec d'autres bases de données PostgreSQL.
Outre la prise en charge du parallélisme des requêtes, postgres_fdw peut désormais insérer en masse des données sur des tables étrangères et importer des partitions de table avec la directive IMPORT FOREIGN SCHEMA.
Administration et observabilité
PostgreSQL 14 étend ses gains de performance au système d'aspiration, y compris les optimisations pour réduire la surcharge des B-Trees. Cette version ajoute également un "mode d'urgence" d'aspiration qui est conçu pour empêcher l'enveloppement des ID de transaction. ANALYZE, utilisé pour collecter les statistiques de la base de données, s'exécute maintenant beaucoup plus rapidement dans PostgreSQL 14 grâce à ses propres améliorations de performance.
La compression pour le système TOAST de PostgreSQL, qui est utilisé pour stocker des données plus importantes comme des blocs de texte ou des géométries, peut maintenant être configurée. PostgreSQL 14 ajoute la compression LZ4 pour les colonnes TOAST tout en conservant le support de la compression pglz. Ensuite, PostgreSQL 14 ajoute plusieurs nouvelles fonctionnalités pour faciliter la surveillance et l'observabilité.
Il y a notamment la possibilité de suivre la progression des commandes COPY, l'activité WAL (write-ahead-log) et les statistiques sur les slots de réplication. L'activation de compute_query_id vous permet de suivre de manière unique une requête à travers plusieurs fonctionnalités de PostgreSQL, y compris pg_stat_activity, EXPLAIN VERBOSE, et plus encore.
Performances, conformité et commodité de SQL
La planification et l'exécution des requêtes bénéficient d'améliorations dans PostgreSQL 14. Cette version comprend plusieurs améliorations du support du parallélisme des requêtes de PostgreSQL, notamment une meilleure performance des scans séquentiels parallèles, la possibilité pour PL/pgSQL d'exécuter des requêtes parallèles lors de l'utilisation de la commande RETURN QUERY, et l'activation de REFRESH MATERIALIZED VIEW pour exécuter des requêtes parallèles. De plus, les requêtes qui utilisent des boucles imbriquées peuvent bénéficier de gains de performance grâce à la mise en cache supplémentaire ajoutée dans PostgreSQL 14.
Les statistiques étendues peuvent maintenant être utilisées dans PostgreSQL 14 pour les expressions. De plus, les fonctions de fenêtre peuvent maintenant bénéficier de tris incrémentaux, une fonctionnalité introduite dans PostgreSQL 13. Les procédures stockées, qui permettent le contrôle des transactions dans un bloc de code, peuvent désormais retourner des données en utilisant les paramètres OUT.
PostgreSQL 14 introduit la possibilité de "[C=SQL]bin[/B]", ou d'aligner, les horodatages sur un intervalle particulier en utilisant la fonction date_bin. Cette version ajoute également les clauses SEARCH et CYCLE conformes à SQL pour faciliter la détection de l'ordre et des cycles pour les expressions récursives de tables communes.
Améliorations de la sécurité
PostgreSQL 14 facilite l'attribution de privilèges en lecture seule et en écriture seule aux utilisateurs sur les tables, les vues et les schémas en utilisant les rôles prédéfinis pg_read_all_data et pg_write_all_data. De plus, cette version fait désormais du système de gestion et d'authentification des mots de passe SCRAM-SHA-256, conforme aux normes, le système par défaut des nouvelles instances PostgreSQL.
Source : PostgreSQL 14
Et vous ?
Que pensez-vous des nouveautés introduites par PostgreSQL 14 ?
Voir aussi
Le groupe de développement de PostgreSQL annonce la disponibilité de la première version bêta de PostgreSQL 14
PostgreSQL 13 s'accompagne d'améliorations significatives de son système d'indexation, d'optimisations pour l'administration quotidienne et de plus de commodités pour les développeurs d'applications
PostgreSQL 12 est disponible et apporte des améliorations sur la performance des requêtes. Cette version introduit les « colonnes calculées » et supporte les colonnes générées stockées