La prochaine version du système de gestion de base de données relationnelle et objet (SGBDRO) se concentre sur les performances, le traitement de gros volumes de données et la facilité d'utilisation. Parmi les nouvelles fonctionnalités et améliorations les plus importantes, on notera avant tout des améliorations majeures pour le partitionnement. PostgreSQL 11 contient en effet plusieurs fonctionnalités qui améliorent le traitement des données dans les partitions. Il s'agit entre autres de :
- la possibilité de partitionner par une clé de hachage (partitionnement par hachage) ;
- les instructions UPDATE qui modifient une clé de partition déplacent maintenant les lignes affectées vers les partitions appropriées ;
- l'amélioration des performances des requêtes SELECT grâce à l'élimination améliorée des partitions lors du traitement et de l'exécution des requêtes, ainsi que des analyses de partition parallélisées ;
- la prise en charge de PRIMARY KEY, FOREIGN KEY, des index et des déclencheurs sur les partitions ;
- etc.
PostgreSQL 11 introduit également la possibilité pour une requête de distribuer le regroupement et l'agrégation aux tables partitionnées avant l'agrégation finale. Cette fonctionnalité est désactivée par défaut, mais pour l'activer, vous devez définir enable_partitionwise_aggregate = on dans votre fichier de configuration ou pendant votre session ou transaction.
Outre les améliorations liées au partitionnement, PostgreSQL 11 introduit des procédures stockées SQL qui permettent aux utilisateurs d'utiliser des transactions intégrées (BEGIN, COMMIT/ROLLBACK) dans une procédure. Les procédures peuvent être créées à l'aide de la commande CREATE PROCEDURE et exécutées à l'aide de la commande CALL.
On notera encore la prise en charge de la compilation JIT (Just-In-Time) pour optimiser l'exécution de code SQL et d'autres opérations au moment de l'exécution. En utilisant des composants du projet LLVM, l'introduction de la prise en charge de JIT dans PostgreSQL accélère les requêtes qui utilisent des expressions (par exemple des clauses WHERE), des listes cibles, des agrégats, des projections, ainsi que certaines opérations internes. Le framework JIT de PostgreSQL est aussi conçu pour permettre un futur travail d'optimisation.
PostgreSQL 11 apporte également des améliorations au parallélisme. En effet, plusieurs fonctionnalités ajoutées à cette version tirent parti de l'infrastructure de requête parallèle et offrent des améliorations significatives de performances. Cela inclut entre autres les jointures par hachage parallélisées et les CREATE INDEX parallélisés pour les index d'arbre-B. Dans cette version du SGBDRO, les fonctions Window prennent aussi entièrement en charge le standard SQL:2011.
La version précédente de PostgreSQL introduisait l'authentification SCRAM (Salted Challenge Response Authentication Mechanism) pour améliorer le stockage et la transmission des mots de passe en utilisant un protocole standard accepté. Rappelons que SCRAM est un protocole et un mécanisme de stockage de données pour prendre en charge l'authentification par mot de passe. PostgreSQL 11 introduit maintenant la liaison de canal (channel binding) pour l'authentification SCRAM, ce qui renforce la sécurité de l'utilisation de SCRAM en empêchant les attaques de type man-in-the-middle.
À ces principaux changements, s'ajoute aussi des améliorations de l'expérience utilisateur. Le PostgreSQL Global Development Group reconnaît en effet que, même si PostgreSQL contient un ensemble de fonctionnalités robustes, elles ne sont pas toutes faciles à utiliser et peuvent nécessiter des solutions de contournement dans les environnements de développement et de production. C'est le cas par exemple de l'utilisation de la commande ALTER TABLE … ADD COLUMN où la colonne nouvellement créée a une valeur DEFAULT qui n'était pas NULL. Avant PostgreSQL 11, lors de l'exécution de cette instruction, PostgreSQL réécrivait la totalité de la table, ce qui, sur les grosses tables dans des systèmes actifs, pouvait provoquer beaucoup de problèmes. PostgreSQL 11 supprime maintenant le besoin de réécrire la table dans la plupart des cas. Ainsi, l'exécution de l’instruction ALTER TABLE ... ADD COLUMN ... DEFAULT ... devrait être extrêmement rapidement.
L'impossibilité de quitter intuitivement la ligne de commande PostgreSQL (psql) était également pénible pour certains utilisateurs. De nombreux utilisateurs se sont plaints parce qu'ils essayaient de quitter la ligne de commande avec les commandes quit et exit, alors que la commande pour le faire est \q. Le PostgreSQL Global Development Group dit avoir pris en compte ces frustrations et ajouté maintenant la possibilité de quitter la ligne de commande en utilisant les mots-clés quit et exit, en espérant que quitter une session PostgreSQL sera désormais plus agréable pour les utilisateurs de PostgreSQL.
Il y a encore beaucoup d'autres nouvelles fonctionnalités et améliorations qui ont été ajoutées à PostgreSQL 11, et qui ne sont pas nécessairement moins importantes que celles citées ici. Vous les trouverez toutes dans les notes de versions.
Avec la sortie de PostgreSQL 11 beta 1, le PostgreSQL Global Development Group invite également les développeurs à tester les nouvelles fonctionnalités dans leurs systèmes de base de données pour aider à éliminer les bogues ou autres problèmes qui pourraient exister. Il faut toutefois rappeler qu'il n'est pas conseillé d'exécuter PostgreSQL 11 Beta 1 dans vos environnements de production.
Source : Blog PostgreSQL
Et vous ?
Que pensez-vous des nouveautés de PostgreSQL 11 ?
Lesquelles appréciez-vous le plus ? Pourquoi ?
Comment trouvez-vous PostgreSQL par rapport aux autres SGDB ? Quels SGBD utilisez-vous ?
Voir aussi :
Google annonce le support de PostgreSQL pour Cloud SQL, son service de base de données hébergé sur Google Cloud Platform
DB-Engines Ranking : PostgreSQL désigné système de gestion de base de données de l'année 2017, quels étaient vos SGBD préférés en 2017 ?
PostgreSQL 10 est disponible en téléchargement : quelles sont les nouveautés de la dernière version du SGBD libre ?
Emploi développeur 2017 : les SGBD les plus demandés et les mieux payés, MySQL, MongoDB et PostgreSQL plus demandés mais MongoDB et DB2 mieux payés
Microsoft Azure embarque une nouvelle offre NoSQL et deux nouveaux services de bases de données pour un support natif de MySQL et PostgreSQL