Le PostgreSQL Global Development Group annonce aujourd'hui la sortie de PostgreSQL 12, la dernière version du SGBD open source le plus avancé du monde.
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.
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. »
PostgreSQL bénéficie d'un développement de plus de 20 années et est devenu le SGBD relationnel open source de référence pour les entreprises et institutions de toutes tailles. La reconnaissance du projet en entreprise est toujours plus grande. Le projet a ainsi reçu pour la seconde année consécutive le prix du SGBD de l'année (« DBMS of the Year ») dans le classement DB-Engines de 2018. Il a également reçu le prix open source « Lifetime Achievement » lors de l'OSCON 2019.
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, a été optimisé avec PostgreSQL 12 pour gérer les charges de travail où ces index sont fréquemment modifiés. Lors d'un test de performance TPC-C sur PostgreSQL 12, on 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. On peut citer 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 (<->
) à
l'aide d'index SP-GiST, et la commande CREATE STATISTICS
qui supporte
désormais les statistiques « most-common value » (MCV) pour produire
de meilleurs plans de requête lorsque des colonnes distribuées de manière non
uniforme sont utilisées.
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.
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.
PostgreSQL 12 étend le support des collations ICU en permettant aux utilisateurs de définir des collations non déterministes, qui peuvent, par exemple, permettre des comparaisons insensibles à la casse ou aux accents.
PostgreSQL étend son support des méthodes d'authentification robustes par plusieurs améliorations qui fournissent des fonctionnalités et sécurités additionnelles. Cette version introduit un chiffrement client et serveur pour l'authentification au travers des interfaces GSSAPI, ainsi que la possibilité de découverte de serveurs LDAP, si PostgreSQL est compilé avec le support d'OpenLDAP.
De plus, PostgreSQL 12 supporte désormais une forme d'authentification
multifacteur. Un serveur PostgreSQL peut ainsi obliger un client
s'authentifiant à fournir un certificat SSL valide avec le nom de
l'utilisateur avec l'option clientcert=verify-full
et combiner
cela avec la demande d'une méthode d'authentification séparée
(scram-sha-256
par exemple).
PostgreSQL 12 introduit la possibilité de reconstruire les index sans bloquer
les écritures sur l'index à l'aide de la commande REINDEX CONCURRENTLY
.
Ce qui permet aux utilisateurs d'éviter les interruptions de service lors de
reconstruction longue d'index.
De plus, PostgreSQL 12 permet d'activer ou désactiver les sommes de
vérification (checksums) de page sur un cluster hors ligne à l'aide de la
commande pg_checksums
. Avant cela, les checksums sur les pages,
fonctionnalité permettant de vérifier l'intégrité des données stockées sur
disque, ne pouvait être activée qu'à la création d'un cluster par la commande
initdb
.
Pour consulter la liste complète des fonctionnalités de cette nouvelle version, vou pouvez lire les notes de version, qui peut être trouvée ici : https://www.postgresql.org/docs/12/release-12.html
For explanations of the above features and others, please see the following resources:
There are several ways you can download PostgreSQL 12, including:
PostgreSQL 12 comes with HTML documentation HTML documentation as well as man pages, and you can also browse the documentation online in both HTML and PDF formats.
PostgreSQL uses the PostgreSQL License, a BSD-like "permissive" license. This OSI-certified license is widely appreciated as flexible and business-friendly, since it does not restrict the use of PostgreSQL with commercial and proprietary applications. Together with multi-company support and public ownership of the code, our license makes PostgreSQL very popular with vendors wanting to embed a database in their own products without fear of fees, vendor lock-in, or changes in licensing terms.
Website
All logos are available for modification and redistribution under The PostgreSQL Licence. The PostgreSQL name and logo are trademarks of The PostgreSQL Community Association of Canada.
PostgreSQL enjoys the support of numerous companies, who sponsor developers, provide hosting resources, and give us financial support. See our sponsors page for some of these project supporters.
There is also a large community of companies offering PostgreSQL Support , from individual consultants to multinational companies.
If you wish to make a financial contribution to the PostgreSQL Global Development Group or one of the recognized community non-profit organizations, please visit our donations page.