Le groupe de développement de PostgreSQL a annoncé la disponibilité de PostgreSQL 12, la dernière version de la base de données open source. Il assure que PostgreSQL 12 inclut des améliorations notables sur la performance des requêtes, particulièrement sur les gros volumes de données et sur l'utilisation générale de l'espace disque. Cette version offre aux développeurs d'applications de nouvelles fonctionnalités comme le support des expressions SQL/JSON path, des optimisations sur l'exécution des requêtes « common tables expression » (WITH) et l'ajout des colonnes calculées.Concernant cette dernière partie, rappelons que WITH fournit une façon d'écrire les sous-requêtes pour utilisation dans une requête SELECT plus étendue. Les sous-requêtes, qui sont souvent appelées des expressions communes de tables (Common Table Expressions ou CTE), peuvent être considérées comme la déclaration d'une table temporaire n'existant que pour la requête. Une utilisation de cette fonctionnalité est de découper des requêtes complexes en parties plus simples.La communauté PostgreSQL poursuit les objectifs d'extensibilité et de robustesse de PostgreSQL en y incluant plusieurs ajouts à l'internationalisation et l'authenfication et en simplifiant l'administration de PostgreSQL.
Cette version introduit également l'interface de stockage connectable permettant de développer sa propre méthode de stockage des données.
« La communauté des développeurs de PostgreSQL a ajouté à PostgreSQL 12 des fonctionnalités qui apportent de la performance et des gains dans la gestion de l'espace disque que nos clients peuvent mettre en œuvre avec un minimum d'effort. Cette version apporte également une authentification de niveau entreprise, des fonctionnalités d'administration et le support de SQL/JSON. » déclare Dave Page, membre du noyau des développeurs du PostgreSQL Global Development Group. « Cette version poursuit l'objectif de simplifier la gestion des bases de données, quelle que soit la charge de travail, grande ou petite. Elle contribue également à consolider la réputation de flexibilité, sûreté et stabilité de PostgreSQL dans des environnements de production ».
Amélioration globale des performances
PostgreSQL 12 apporte des améliorations de performance et de maintenance significatives à la fois au niveau du système d'indexation et du partitionnement.
Les index B-tree, type d'indexation standard de PostgreSQL, ont été optimisés avec PostgreSQL 12 pour gérer les charges de travail où ces index sont fréquemment modifiés. L'équipe note que lors d'un test de performance TPC-C sur PostgreSQL 12, elle a pu mesurer une réduction moyenne de 40% de l'espace mémoire utilisé et un gain général de performance sur les requêtes.
Des améliorations significatives ont également été mesurées sur les requêtes sur les tables partitionnées, particulièrement sur des tables avec des milliers de partitions pour lesquelles seul un sous-ensemble limité de données devait être récupéré. PostgreSQL 12 améliore également la performance lors de l'ajout de données dans les tables partitionnées avec INSERT et COPY. Enfin, cette version permet d'attacher une nouvelle partition à une table sans bloquer les requêtes.
Il y a d'autres améliorations de l'indexation dans PostgreSQL 12 qui jouent sur les performances globales. L'équipe évoque entre autres l'abaissement du surcoût de génération des index GiST, GIN et SP-GiST dans les WAL, la possibilité de créer des index couvrants (la clause INCLUDE) sur les index GiST, la possibilité d'effectuer des requêtes de recherche des K plus proches voisins (KNN) avec l'opérateur de distance (<->
La compilation « Just-in-time » (JIT) à l'aide de LLVM, introduite dans PostgreSQL 11, est désormais activée par défaut. La compilation JIT peut apporter des gains de performance sur l'exécution de requêtes dans les clauses WHERE, les listes cibles, les agrégats, et d'autres opérations internes. Cette option est disponible sur les versions compilées ou packagées avec le support de LLVM.
Améliorations de la conformité et des fonctionnalités du SQL
PostgreSQL est connu pour sa conformité au standard SQL - une des raisons pour lesquelles il a été renommé de « POSTGRES » en « PostgreSQL » - et PostgreSQL 12 ajoute plusieurs fonctionnalités dans la continuité de l'implantation du standard avec des fonctionnalités avancées.
PostgreSQL 12 introduit la possibilité d'effectuer des requêtes sur des documents JSON à l'aide d'expressions JSON path definies dans le standard SQL/JSON. Ces requêtes peuvent utiliser les mécanismes d'indexation de documents stockés au format JSONB pour accéder efficacement aux données.
Les « Common table expressions », connues aussi sous le nom de requêtes « WITH », peuvent désormais être écrites en ligne avec PostgreSQL 12, ce qui peut augmenter les performances de nombreuses requêtes. Dans cette version, une requête « WITH » peut être écrite en ligne si elle n'est pas récursive, n'a pas d'effet de bord, et n'est référencée qu'une fois dans une partie suivante de la requête.
PostgreSQL 12 introduit les « colonnes calculées ». Définies dans le standard SQL, ce type de colonne calcule sa valeur à partir du contenu d'autres colonnes de la même table. Dans cette version, PostgreSQL supporte les colonnes générées stockées, pour lesquelles la valeur calculée est stockée sur disque.
En savoir plus sur les colonnes générées
PostgreSQL 12 est fourni avec une nouvelle fonctionnalité appelée colonnes générées. D'autres SGBDR populaires supportent déjà les colonnes générées en tant que « colonnes calculées » ou « colonnes virtuelles ». Avec Postgres 12, vous pouvez désormais l'utiliser également dans PostgreSQL.
Qu'est-ce qu'une colonne générée ?
Une colonne générée est un peu comme une vue, mais pour des colonnes. Voici un exemple de base:...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.