PostgreSQL 17 apporte de grandes améliorations de performances, une nouvelle sauvegarde incrémentielle et bien plus encore

PostgreSQL 17

Comme chaque année entre septembre et octobre, la sortie de la nouvelle version de PostgreSQL 17 a été annoncée et, comme pour toutes les versions précédentes, la priorité reste l'amélioration des performances et l'optimisation des ressources, notamment pour les opérations telles que VACUUM, les E/S et les requêtes, tandis que la fonctionnalité la plus importante de cette version est la sauvegarde incrémentielle.

Pour les utilisateurs professionnels, la mise à jour apporte une multitude d'améliorations qui simplifient la gestion et l'utilisation des bases de données. Bien que PostgreSQL soit historiquement une base de données relationnelle, cette version étend son intégration avec des fonctionnalités avancées permettant de travailler avec des documents JSON, une fonctionnalité couramment associée à MongoDB Atlas.

Quoi de neuf dans PostgreSQL 17

Dans cette nouvelle version de PostgreSQL 17, une nouvelle structure de données a été introduite dans l'opération VACUUM, ce qui réduit la consommation de mémoire jusqu'à 20 fois, permettant ainsi à ces opérations d'être plus rapides et plus efficaces en termes de ressources partagées.

Concernant les améliorations de performances, la gestion du registre WAL (Write-Away Register) a été optimisée, permettant de doubler les performances d'écriture sur les systèmes effectuant de nombreuses requêtes simultanées. Une interface d'E/S en flux continu a été proposée afin d'améliorer la recherche séquentielle et la mise à jour des statistiques après l'opération ANALYZE.

De plus, des améliorations ont été apportées aux requêtes avec clauses « IN » lors de l’utilisation d’index B-tree, ainsi qu’à la construction parallèle des index BRIN, à l’optimisation des vérifications « NOT NULL » et à l’accélération du traitement des expressions de table communes (CTE). Pour les calculs intensifs, des instructions SIMD, telles que AVX-512, ont été intégrées afin d’accélérer des opérations comme la fonction `bit_count`.

Une autre nouveauté qui se démarque est la de nouvelles fonctionnalités pour JSON, depuis Les utilisateurs peuvent désormais interroger les types de données JSON à l'aide de commandes SQL standard. Ceci est possible grâce à la nouvelle fonctionnalité de table json, qui transforme les données JSON en une structure tabulaire. À partir de là, les utilisateurs peuvent effectuer des requêtes en utilisant la clause FROM en SQL, permettant de renvoyer les données dans un format relationnel. Ajout de la fonction `JSON_TABLE` pour convertir les données JSON en tables PostgreSQL standard.

Il convient également de souligner la nouvelle fonctionnalité de sauvegarde incrémentielle de PostgreSQL 17, qui permet de sauvegarder uniquement les modifications apportées depuis la dernière sauvegarde complète ou incrémentielle , optimisant ainsi la bande passante et réduisant les besoins de stockage. Si PostgreSQL proposait déjà des solutions comme l'archivage WAL, qui répliquait le journal des transactions (WAL) pour conserver les sections nécessaires de la base de données, la version 17 introduit, pour la première fois, un mécanisme natif de sauvegarde incrémentielle. Ce système minimise non seulement les interruptions de service en réduisant l'impact sur les performances, mais diminue aussi considérablement les temps de restauration – un aspect crucial, car la restauration des sauvegardes est souvent un processus long et fastidieux pour les utilisateurs.

Un moteur indépendant de la plateforme a été implémenté pour traiter les propriétés de localisation, garantissant ainsi un tri cohérent des résultats de requêtes. Ce moteur prend en compte des facteurs tels que la présence de caractères spéciaux et la sensibilité à la casse lors du tri des valeurs. Le mécanisme de réplication logique simplifie désormais la mise à niveau de la base de données, en éliminant la nécessité de supprimer les emplacements de réplication logique ou de resynchroniser les données lors de la migration vers une nouvelle version.

Parmi les autres changements notables, citons :

  • L'exportation de chaînes longues avec la commande `COPY` a été accélérée jusqu'à deux fois.
  • Copie optimisée lorsque les encodages source et destination correspondent.
  • L'option `ON_ERROR` a été ajoutée pour permettre à l'importation de continuer malgré les erreurs d'insertion des données.
  • Ajout de la possibilité d'utiliser des colonnes avec des identifiants uniques dans les tables partitionnées.
  • Implémentation d'une fonctionnalité de basculement pour passer à un serveur de sauvegarde dans des configurations tolérantes aux pannes.
  • Ajout d'un nouvel utilitaire pg_createsubscriber pour convertir une réplique physique en réplique logique.
  • Introduction de l'option « sslnégociation » pour négocier des connexions TLS sécurisées directement à l'aide de l'extension ALPN TLS.
  • Ajout du rôle prédéfini pg_maintain, qui donne aux utilisateurs le droit d'effectuer des opérations liées à la maintenance du SGBD.

Enfin, si vous souhaitez en savoir plus, vous trouverez les détails en suivant ce lien.


Ajouter comme source préférée dans Google