26 septembre 2024 - Le PostgreSQL Global Development Group annonce aujourd'hui la publication de PostgreSQL 17, dernière version de la base de données open source de référence.
PostgreSQL 17 repose sur plusieurs décennies de développement, améliorant ses
performances et sa mise à l'échelle tout en s'adaptant aux modèles émergents
d'accès aux données et à leur stockage. Cette version de
PostgreSQL amène des gains de performance
généralisés, dont une révision complète de l'implantation de la gestion de la
mémoire des opérations de vacuum, des optimisations de l'accès au stockage, des
améliorations pour les charges de travail fortement concurrentielles,
l'accélération des chargements et exports en masse et des améliorations de
l'exécution des requêtes utilisant les index. PostgreSQL 17 possède
des fonctionnalités qui profitent aussi bien aux nouvelles charges de travail
qu'aux systèmes critiques. On peut citer les ajouts à l'expérience développeur
avec la commande SQL/JSON JSON_TABLE
et les améliorations de réplication
logique qui simplifient la gestion de la haute disponibilité et des mises à jour
de version majeures.
« PostgreSQL 17 souligne la manière dont la communauté open source mondiale, qui pilote le développement de PostgreSQL, construit les améliorations qui aident les utilisateurs à tous les niveaux de leur expérience avec la base de données » dit Jonathan Katz, un membre de la « core team » de PostgreSQL. « Qu'il s'agisse d'améliorations pour opérer les bases de données à l'échelle ou de nouvelles fonctionnalités qui contribuent à une expérience développeur agréable, PostgreSQL va parfaire votre expérience de la gestion de données. »
PostgreSQL, système innovant de gestion des données, reconnu pour sa fiabilité et sa robustesse, bénéficie depuis plus de 25 ans d'un développement open source par une communauté mondiale de développeurs et développeuses. Il est devenu le système de gestion de bases de données relationnelles de référence pour les organisations de toute taille.
Le processus de vacuum de PostgreSQL, critique pour le bon déroulement des opérations, nécessite des ressources du serveur de l'instance pour s'exécuter. PostgreSQL 17 introduit une nouvelle structure interne de la mémoire pour vacuum qui divise par 20 l'utilisation mémoire. PostgreSQL améliore ainsi la vitesse des opérations de vacuum tout en réduisant l'usage des ressources partagées, les rendant disponibles à votre charge de travail.
PostgreSQL 17 poursuit l'amélioration des performances de sa couche
d'entrées/sorties. Les charges de travail hautement concurrentes pourront voir
leurs performances en écriture doubler grâce à une amélioration sur le
traitement du write-ahead
log
(WAL). De plus, la nouvelle
interface d'entrées/sorties par flux accélère les lectures séquentielles
(lecture de toutes les données d'une table). Cette même fonctionnalité bénéficie
aussi à ANALYZE
qui
peut ainsi mettre à jour les statistiques du planificateur de requêtes bien plus
rapidement.
PostgreSQL 17 étend ses gains de performance à l'exécution de requêtes. Il
améliore la performance des requêtes avec des clauses IN
utilisant des index
de type
B-tree,
la méthode d'indexation par défaut de PostgreSQL. De plus, il est maintenant
possible de paralléliser la construction des index
BRIN. PostgreSQL 17 comporte
plusieurs améliorations dans la planification des requêtes, dont des
optimisations sur les contraintes NOT NULL
et des améliorations dans le
traitement des common table
expressions (les
requêtesWITH
). Cette
version prend en charge plus d'instructions SIMD (Single Instruction/Multiple
Data) pour accélérer les calculs, incluant l'usage d'AVX-512 pour la fonction
bit_count
.
PostgreSQL a été la première base de données relationnelle à ajouter le support
de JSON
(2012), et
PostgreSQL 17 complète son implantation du standard SQL/JSON.
JSON_TABLE
est maintenant disponible dans PostgreSQL 17, permettant aux développeurs de
convertir des données JSON dans une table standard PostgreSQL. PostgreSQL 17
supporte maintenant les constructeurs
SQL/JSON
(JSON
, JSON_SCALAR
, JSON_SERIALIZE
) et les fonctions de
requêtage
(JSON_EXISTS
, JSON_QUERY
, JSON_VALUE
), offrant de nouvelles possibilités
aux développeurs d'interagir avec leurs données JSON. Cette version ajoute plus
d'expressions
jsonpath
,
avec un accent sur la conversion de données JSON vers des types de données
natifs de PostgreSQL comme les types numériques, booléens, chaînes de caractères
et date/heure.
PostgreSQL 17 rajoute des fonctionnalités à la commande
MERGE
, utilisée pour les
mises à jour conditionnelles, en incluant une clause RETURNING
et la capacité
de mettre à jour les
vues. En prime,
PostgreSQL 17 dispose de nouvelles capacités de chargement et d'export de
données en masse pouvant aller jusqu'à doubler la performance lors de l'export
de grandes lignes en utilisant la commande
COPY
. COPY
bénéficie
d'améliorations de performance, lorsque les encodages de la source et de la
destination correspondent et inclut une nouvelle option, ON_ERROR
, qui permet
la poursuite d'un import même en cas d'erreur d'insertion.
Cette version étend les fonctionnalités de gestion des données à la fois dans
les partitions et dans les données distribuées sur des instances PostgreSQL
distantes. PostgreSQL 17 supporte l'utilisation de colonnes identité et des
contraintes d'exclusions sur des tables
partitionnées. Les
foreign data wrapper
PostgreSQL
(postgres_fdw
), qui
sont utilisés pour exécuter des requêtes sur des instances PostgreSQL distantes,
peuvent maintenant transmettre les sous-requêtes EXISTS
et IN
vers un
serveur distant pour un traitement plus efficace.
PostgreSQL 17 inclut un fournisseur de collation interne, indépendant de la
plateforme et immutable permettant de garantir l'immutabilité des résultats et
fournit une sémantique de tri similaire à la collation C
mais avec l'encodage
UTF-8
au lieu de SQL_ASCII
. L'utilisation de ce nouveau fournisseur de
collation garantit que les résultats triés des requêtes basées sur du texte
seront identiques, indépendamment de l'environnement.
La réplication logique est utilisée pour transmettre des données en temps réel dans de nombreux cas d'usage. Toutefois, avant cette version, une mise à jour majeure nécessitait de supprimer les slots de réplication logique, ce qui obligeait à resynchroniser les données vers les souscripteurs après la mise à jour. À partir de PostgreSQL 17, les mises à jour utilisant la réplication logique seront simplifiées : elles ne nécessiteront plus de supprimer les slots de réplication logique.
PostgreSQL 17 inclut désormais un contrôle des bascules sur incident pour la réplication logique, ce qui la rend plus résiliente dans les environnements hautement disponibles.
Enfin, PostgreSQL 17 introduit l'outil en ligne de commande
pg_createsubscriber
pour convertir un réplica physique en réplica logique.
PostgreSQL 17 étend les possibilités de gestion du cycle de vie des systèmes de
bases de données. Une nouvelle option TLS, sslnegotiation
, est ajoutée, qui
permet aux utilisateurs d'effectuer une négociation TLS
directe lors de l'utilisation
d'ALPN
(enregistrée comme postgresql
dans le répertoire ALPN). PostgreSQL 17 ajoute
le rôle prédéfini
pg_maintain
, qui donne les privilèges d'effectuer des opérations de
maintenance aux utilisateurs.
pg_basebackup
,
l'utilitaire de sauvegarde intégré à PostgreSQL, supporte désormais les
sauvegardes incrémentales et ajoute l'utilitaire
pg_combinebackup
pour reconstruire une sauvegarde complète.
En complément, pg_dump
intègre une nouvelle option, appelée --filter
, qui permet de préciser un
fichier contenant la liste des objets à intégrer lors de la génération d'un
export.
PostgreSQL 17 ajoute des améliorations aux fonctionnalités de supervision et
d'analyse.
EXPLAIN
présente
maintenant le temps passé sur les lectures et écritures de blocs et intègre deux
nouvelles options : SERIALIZE
et MEMORY
, utiles pour voir le temps passé
dans la conversion de données lors des transmissions réseau, et la quantité de
mémoire utilisée.
PostgreSQL 17 indique désormais la progression du vacuum des
index.
Cette version ajoute la vue système
pg_wait_events
,
qui combinée avec
pg_stat_activity
,
donne plus d'informations sur les raisons pour lesquelles une session active est
en attente.
De nombreuses autres fonctionnalités ont été ajoutées à PostgreSQL 17. Elles peuvent aussi être utiles dans vos cas d'usage. Vous pouvez vous référer aux notes de version (en anglais) pour consulter la liste complète des fonctionnalités modifiées ou ajoutées.
PostgreSQL est le système de gestion de bases de données libre de référence. Sa communauté mondiale est composée de plusieurs milliers d’utilisateurs, utilisatrices, contributeurs, contributrices, entreprises et institutions. Le projet PostgreSQL, démarré il y a plus de 30 ans à l’université de Californie, à Berkeley, a atteint aujourd’hui un rythme de développement sans pareil. L’ensemble des fonctionnalités proposées est mature, et dépasse même celui des systèmes commerciaux leaders sur les fonctionnalités avancées, les extensions, la sécurité et la stabilité.
PostgreSQL est le système de gestion de bases de données libre de référence. Sa communauté mondiale est composée de plusieurs milliers d’utilisateurs, utilisatrices, contributeurs, contributrices, entreprises et institutions. Le projet PostgreSQL, démarré il y a plus de 30 ans à l’université de Californie, à Berkeley, a atteint aujourd’hui un rythme de développement sans pareil. L’ensemble des fonctionnalités proposées est mature, et dépasse même celui des systèmes commerciaux leaders sur les fonctionnalités avancées, les extensions, la sécurité et la stabilité.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
Pour de plus amples informations sur les fonctionnalités ci-dessus et toutes les autres, vous pouvez consulter les liens suivants :
Il existe plusieurs façons de télécharger PostgreSQL 17, dont :
D'autres outils et extensions sont disponibles sur le PostgreSQL Extension Network.
La documentation au format HTML et les pages de manuel sont installées avec PostgreSQL. La documentation peut également être consultée en ligne ou récupérée au format PDF.
PostgreSQL utilise la licence PostgreSQL, licence « permissive » de type BSD. Cette licence certifiée OSI est largement appréciée pour sa flexibilité et sa compatibilité avec le monde des affaires, puisqu'elle ne restreint pas l'utilisation de PostgreSQL dans les applications propriétaires ou commerciales. Associée à un support proposé par de multiples sociétés et une propriété publique du code, sa licence rend PostgreSQL très populaire parmi les revendeurs souhaitant embarquer une base de données dans leurs produits sans avoir à se soucier des prix de licence, des verrous commerciaux ou modifications des termes de licence.
Site internet
Courriel
Postgres, PostgreSQL et le logo éléphant (Slonik) sont des marques déposées de l'Association de la Communauté PostgreSQL. Si vous souhaitez utiliser ces marques, vous devez vous conformer à la politique de la marque.
PostgreSQL bénéficie du support de nombreuses sociétés, qui financent des développeurs et développeuses, fournissent l'hébergement ou un support financier. Les plus fervents supporters sont listés sur la page des sponsors.
Il existe également une très grande communauté de sociétés offrant du support PostgreSQL, du consultant indépendant aux entreprises multinationales.
Les dons au PostgreSQL Global Development Group, ou à l'une des associations à but non lucratif, sont acceptés et encouragés.