La base de données open source PostgreSQL, notamment connue pour l’alternative qu’elle présente pour les entreprises qui veulent migrer leurs déploiements Oracle, vient d'être livrée dans sa version 14. Ses nouvelles capacités sont axées sur les performances, les types de données complexes et les charges de travail distribuées. Pour les workloads qui utilisent de nombreuses connexions, la mise à jour est parvenue à doubler sa performance sur certains benchmarks. Les grosses charges de travail et celles comportant de petites opérations d’écriture en grand nombre bénéficient aussi de nouvelles aptitudes sur le pipeline de requêtes vers la base de données, ce qui peut booster la performance sur les connexions à haute latence. Cette fonctionnalité côté-client peut être utilisée avec toute base PostgreSQL récente avec la version 14 du client ou un pilote client bâti avec la version 14 de libpq. 

Pour les charges de travail distribuées, l’utilisation de la réplication logique peut transmettre les transactions en cours avec des améliorations de performance sur les transactions volumineuses. Et les extensions Foreign Data Wrapper (postgres_fdw), utilisées pour travailler avec des workloads fédérés entre PostgreSQL et d’autres bases de données, peuvent maintenant tirer parti du parallélisme.

Des requêtes plus simple sur les types de données range

Parmi les autres nouveautés de PostgreSQL, la planification et l’exécution des requêtes a été étendue. Le support amélioré du parallélisme sur les requêtes inclut une meilleure performance sur les scans séquentiels parallèles. Dans la version 14, les requêtes utilisant un nested loop (jointure de boucle imbriquée) peuvent bénéficier d’une mise en cache supplémentaire. Les types range (qui permettent de stocker des intervalles de données, début/fin) supportent maintenant les plages contigües à travers un type de données « multirange ». Ce dernier se présente comme une liste ordonnée de plages début/fin qui ne se chevauchent pas, ce qui permet aux développeurs d’écrire des requêtes plus simples pour travailler avec des séquences d’intervalles complexes. 

On peut accéder aux données JSON en utilisant des indices. Parmi les autres évolutions, les performances ont été renforcées sur le système de récupération d’espace pour la maintenance de la database. Au nombre des optimisations figure la réduction de la surcharge sur les structures de données B-tree. 

Les procédures stockées permettant le contrôle des transactions dans un bloc de code peuvent désormais renvoyer des données à l’aide des paramètres OUT. L’attribution de privilèges en lecture seule et en écriture seule aux utilisateurs sur les tables, les vues et les schémas a été facilitée grâce aux rôles prédéfinis pg_read_all_data et pg_write_all_data. Enfin, parmi les autres évolutions, la gestion et l’authentification des mots de passe basés sur SCRAM-SHA-256 se fait maintenant par défaut sur les nouvelles instances de PostgreSQL.