September 25, 2025: PostgreSQL 18 Released!
This page in: Chinese / English / French / German / Greek / Hebrew / Indonesian / Italian / Japanese / Korean / Portuguese / Russian / Spanish / Thai / Ukrainian

PostgreSQL 18 Press Kit

Contents

Original Press Release

25 septembre 2025. Le PostgreSQL Global Development Group annonce aujourd'hui la publication de PostgreSQL 18, dernière version de la base de données open source de référence.

PostgreSQL 18 améliore la performance des charges de travail de toute taille grâce à un tout nouveau sous-système d'entrées-sorties. Ce système a démontré des performances en lecture pouvant être jusqu'à trois fois plus rapide. Cette version permet d'augmenter le nombre de requêtes pouvant utiliser des index. Elle rend également les mises à jour de versions majeures moins disruptives, accélérant les temps de mise à jour et réduisant le temps d'atteinte de la performance optimale une fois la mise à jour effectuée.

Les développeurs bénéficient également de nouvelles fonctionnalités avec PostgreSQL 18. Celles-ci incluent les colonnes générées virtuelles, calculées à l'exécution de la requête, et la fonction uuidv7() qui permet à la fois une meilleure indexation et une meilleure performance en lecture sur les UUIDs.

PostgreSQL 18 rend son intégration plus simple avec les systèmes single sign on (SSO) en supportant l'authentification OAuth 2.0.

« Les efforts de la communauté open source mondiale façonnent chaque publication de PostgreSQL et permettent de livrer des fonctionnalités qui correspondent aux attentes des utilisateurs au plus près de leurs données » déclare Jonathan Katz, un membre de la core team de PostgreSQL. « PostgreSQL 18 s'appuie sur l'historique long et riche du projet, centré sur la fiabilité et la robustesse du gestionnaire de données, tout en étoffant les charges de travail qu'il prend en charge. »

PostgreSQL, système innovant de gestion des données, reconnu pour sa fiabilité et sa robustesse, bénéficie depuis près de 30 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.

Un premier pas vers les entrées/sorties asynchrones

Précédemment, PostgreSQL s'appuyait sur les mécanismes de lecture anticipée du système d'exploitation pour accélérer la récupération des données sur disque. Cependant, comme les systèmes d'exploitation n'ont pas la connaissance des modèles d'accès propres à la base de données, ils ne peuvent pas toujours anticiper les données nécessaires, entraînant une performance sous-optimale pour de nombreuses charges de travail.

PostgreSQL 18 introduit un nouveau sous-système d'E/S asynchrones (AIO) pour traiter ces limitations. AIO permet à PostgreSQL d'effectuer plusieurs demandes d'E/S de façon concurrente plutôt que d'attendre que chacune se termine en séquence. Ceci étend la lecture anticipée et améliore la bande passante globale. Les opérations AIO supportées dans PostgreSQL 18 incluent les lectures séquentielles, les lectures bitmap des fichiers heap ainsi que les opérations de vacuum. Les tests ont démontré une performance multipliée par 3 sur certains scénarios.

Le nouveau paramètre io_method permet de choisir entre les méthodes AIO worker et io_uring ou de conserver le comportement habituel de PostgreSQL avec la valeur sync. De nouveaux paramètres sont à a prendre en compte pour régler AIO, comme l'explique la documentation.

Des mises à jour plus rapides, de meilleures performances post-mises à jour

Une des fonctionnalités clé de PostgreSQL est la génération et le stockage de statistiques permettant à PostgreSQL de choisir le plan de requêtage le plus efficace. Avant PostgreSQL 18, ces statistiques n'étaient pas conservées lors d'une mise à jour majeure de version. Ceci pouvait causer des dégradations de performances sur les systèmes chargés jusqu'à ce que l'exécution d'ANALYZE se termine. PostgreSQL 18 apporte la possibilité de garder les statistiques du planificateur lors d'une mise à jour de version majeure, ce qui permet à une instance d'être plus rapidement performante après l'opération.

De plus, pg_upgrade, outil de mises à jour majeures, inclut plusieurs améliorations dans PostgreSQL 18, telles que des mises à jour plus rapides lorsqu'une base de données contient beaucoup d'objets de type tables ou séquences. Avec cette version, pg_upgrade traite ses vérifications en parallèle en se basant sur le paramètre --jobs et ajoute un autre paramètre --swap qui intervertit les répertoires au lieu de copier, cloner ou lier les fichiers.

Requêtes et amélioration générale des performances

PostgreSQL 18 améliore encore la performance des requêtes avec des fonctionnalités qui optimisent automatiquement les traitements.

Cette version introduit les recherches « skip scan » sur les index B-tree multicolonnes améliorant les temps d'exécution pour les requêtes qui omettent une condition = sur une ou plusieurs colonnes préfixes de l'index. Cela peut favoriser l'utilisation d'un index sur des requêtes qui utilisent des conditions OR dans un WHERE, accélérant significativement leur exécution.

Cette version apporte de nombreuses améliorations sur la manière dont PostgreSQL planifie et exécute les jointures de tables. Cela comprend de meilleures performances sur les jointures par hachage ou l'utilisation de tris incrémentaux lors de jointures par fusion (merge joins). PostgreSQL 18 apporte la construction parallèle pour les index GIN, les plaçant au niveau des index B-tree et des index BRIN qui exploitent déjà cette fonctionnalité.

Cette version étend le support de l'accélération matérielle, incluant le support pour l'ARM NEON et SVE CPU pour la prise en charge intrinsèque de la fonction popcount, qui est utilisée par bit_count et autres fonctionnalités internes.

Améliorer l'expérience développeur

PostgreSQL 18 introduit les colonnes générées virtuelles dont les valeurs sont calculées à la requête, et non stockées. À partir de cette version, il s'agit du comportement par défaut pour les colonnes générées. De plus, les colonnes générées stockées peuvent maintenant être répliquées logiquement.

Cette version ajoute la possibilité d'accéder à la fois aux valeurs précédentes (OLD) et courantes (NEW) dans la clause RETURNING pour les commandes INSERT, UPDATE, DELETE et MERGE.

PostgreSQL 18 propose également la génération de UUIDv7 au travers de la fonction uuidv7() autorisant l'utilisateur à générer des UUIDs aléatoires ordonnés dans le temps ce qui permet la mise en œuvre de meilleures stratégies de cache. PostgreSQL 18 inclut uuidv4(), un alias pour gen_random_uuid().

PostgreSQL 18 ajoute des contraintes temporelles, -- contraintes sur intervalles -- à la fois pour les contraintes PRIMARY KEY et UNIQUE en utilisant la clause WITHOUT OVERLAPS, et sur les contraintes FOREIGN KEY en utilisant la clause PERIOD.

Enfin, PostgreSQL 18 simplifie la création de tables étrangères en utilisant la définition d'une table locale. Cette opération est réalisée par la commande CREATE FOREIGN TABLE ... LIKE.

Amélioration de la gestion du texte

De nombreuses améliorations simplifient et accélèrent la gestion du texte dans PostgreSQL 18. Cette version ajoute la collation PG_UNICODE_FAST qui fournit les sémantiques Unicode pour les conversions de casse et accélère nombre de comparaisons. Cela inclut les fonctions de comparaisons de chaînes upper et lower et la nouvelle fonction de comparaisons insensibles à la casse casefold. De plus, PostgreSQL 18 supporte désormais les comparaisons LIKE de texte utilisant une collation non déterministe, ce qui simplifie la recherche de correspondances complexes. Cette version modifie également la recherche plein texte pour utiliser le fournisseur de collation par défaut d'une instance plutôt que l'utilisation constante de la libc. Cela peut nécessiter de réindexer tous les index recherche plein texte et pg_trgm après avoir lancé pg_upgrade.

Réplication

PostgreSQL 18 transcrit les conflits en écriture de réplication logique dans les journaux et dans la vue pg_stat_subscription_stats. De plus, CREATE SUBSCRIPTION utilise désormais par défaut des flux parallèles pour appliquer les transactions, ce qui contribue à améliorer la performance de la réplication.

L'utilitaire pg_createsubscriber dispose maintenant d'un paramètre --all permettant de créer des réplicas logiques pour toutes les bases d'une instance avec une seule commande.

PostgreSQL 18 permet également d'automatiser la suppression des slots de réplications inactifs. Cela permet d'éviter de stocker trop de fichiers WAL sur le serveur de publication.

Maintenance et observabilité

PostgreSQL 18 améliore sa stratégie de vacuum en gelant plus de pages de manière proactive durant les vacuums classiques. Ceci est une aide importante et permet de réduire la surcharge lors des situations où un vacuum agressif est nécessaire.

PostgreSQL 18 ajoute plus de détails à la commande EXPLAIN, fournissant les informations sur le plan d'exécution d'une requête. À partir de cette version, les informations sur le nombre de tampons (l'unité fondamentale de stockage des données) accédés sont affichées automatiquement lors de l'exécution de EXPLAIN ANALYZE. EXPLAIN ANALYZE indique également le nombre de recherches effectuées dans un index lors d'un balayage d'index. EXPLAIN ANALYZE VERBOSE inclut des statistiques sur le CPU, les WAL, et la moyenne des lectures sur disque. PostgreSQL 18 inclut plus d'informations dans pg_stat_all_tables sur le temps passé sur le vacuum et les opérations associées, ainsi que des statistiques par connexion sur les entrées/sorties et l'utilisation des WAL.

Autres changements notables

Les sommes de contrôles sur les pages sont maintenant activées par défaut sur les bases de données initialisées avec l'outil initdb de PostgreSQL 18.

Cela peut avoir un impact sur les montées de version des clusters pour lesquels les sommes de contrôle ne sont pas activées. Dans ce cas, il sera nécessaire de créer un nouveau cluster PostgreSQL 18 avec l'option --no-data-checksums pour pouvoir utiliser pg_upgrade.

PostgreSQL 18 introduit également une nouvelle version (3.2) du protocole natif PostgreSQL. Il s'agit de la première évolution du protocole depuis PostgreSQL 7.4 (2003). libpq utilise toujours la version 3.0 par défaut pour laisser le temps aux clients (par exemple, les pilotes, les poolers et les proxies) d'ajouter le support de la nouvelle version du protocole.

À propos de PostgreSQL

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é.

Liens

À propos de PostgreSQL

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.

En savoir plus sur les fonctionnalités

Les liens suivants fournissent de plus amples informations sur les fonctionnalités ci-dessus et toutes les autres :

Où télécharger

Il existe plusieurs façons de télécharger PostgreSQL 18, dont :

D'autres outils et extensions sont disponibles sur le PostgreSQL Extension Network.

Documentation

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.

Licence

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.

Contacts

Site internet

Courriel

Images et logos

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 Logo

Support professionnel et dons

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.