PostgreSQL 14 est disponible. Quelles nouvelles fonctionnalités ?
Le mois d’octobre a démarré avec la sortie de la dernière version pour sa base PostgreSQL Open Source, la version 14.0. Découvrons les évolutions principales de cette version qui apporte à la fois des nouveautés pour les développeurs et pour les administrateurs.
Types de données et SQL : une nouvelle syntaxe
Bien qu’il soit possible de manipuler des données depuis la version 9.2, la version 14 introduit, à travers le subscript, une syntaxe plus naturelle, plus conviviale et certainement plus standard à la syntaxe couramment utilisée dans les requêtes. Cette syntaxe peut être étendue aux autres données structurées.
Cette version va également inclure :
- Un nouveau type multirange permettant de spécifier des listes ordonnées de plages non contiguës ;
- Dans les requêtes avec des tables récursives (requête WITH), Postgresql ajoute la syntaxe SEARCH et CYCLE ;
- La prise en charge des paramètres OUT dans les procédures stockées et ajoute à la clause GROUP BY la possibilité d’utiliser le mot-clé DISTINCT ;
- Introduction de la compression LZ4 pour les colonnes TOAST tout en maintenant le support de la compression PGLZ.
De nouvelles fonctionnalités d'administration
PostgreSQL 14 améliore les performances de la fonction VACUUM avec des optimisations orientées vers les index ainsi que la prise en charge des tables partitionnées.
Des améliorations pour les informations pouvant être surveillées, donnant la possibilité de suivre la progression de COPY, de suivre l’activité WAL ainsi que les statistiques des slots de réplication.
D’autres améliorations apparaissent également pour aider à gérer les connexions (ex : idle_session_timeout et client_connection_check_interval).
Amélioration de la réplication et de la récupération
PostgreSQL 14 apporte son lot d’améliorations, au niveau de la performance lors des réplication logique pour des bases de données distribuées. Par exemple, en permettant aux Foreign data wrappers d’utiliser le parallélisme des requêtes.
Il y a des améliorations de performances dans PostgreSQL 14 sur la façon dont PostgreSQL démarre lors d'une récupération après incident, et vous pouvez maintenant utiliser pg_rewind sur une instance PostgreSQL qui est en mode veille.
Pour en savoir plus, revisionnez notre webinar sur la sauvegarde des bases PostgreSQL.
Performance : requêtes en rafale et parallélisme
PostgreSQL 14 introduit la possibilité d’effectuer des requêtes en rafale (pipeline mode) vers la base de données. Cette fonctionnalité étant liée au client PostgreSQLl 14, le mode en rafale peut être utilisé sur des versions plus anciennes de PostgreSQL.
Le parallélisme des requêtes a été globalement amélioré pour :
- Les lectures séquentielles ;
- L’utilisation des requêtes parallélisées dans la commande RETURN QUERY dans du code PL/pgSQL ;
- Les requêtes parallèles pour le REFRESH MATERIALIZD VIEW ;
Pour finir, les requêtes incluant des jointures à boucles imbriquées amélioreront leurs meilleures performances grâce au système de cache additionnel.
La sécurité, jamais oubliée
PostgreSQL 14 ajoute la possibilité de donner aux utilisateurs des privilèges universels "lecture seule" et "écriture seule" sur les tables / vues / séquences grâce à l'utilisation des rôles prédéfinis pg_read_all_data et pg_write_all_data.
La sécurité des mots de passe pour les nouvelles instances a été améliorée par l’utilisation par défaut SCRAM-SHA-256. Le paramètre clientcert dans pg_hba.conf a également évoluer en imposant l’utilisation des valeurs de verify-ca ou verify-full.
Cette version permet d’utiliser le "nom distinctif" (DN) d'un certificat pour l'authentification basée sur un certificat avec un paramètre clientname=DN dans le fichier pg_hba.conf.
De nombreuses autres nouvelles fonctionnalités et améliorations ont été ajoutées à PostgreSQL 14, il est impossible de les lister toutes dans cet article et d’autres améliorations sont plus pertinentes en fonction de votre contexte. Pour retrouver la liste de toutes les nouvelles fonctionnalités ou des modifications de celles-ci, veuillez consulter la release note de version.
Vous avez un projet d’upgrade de vos bases PostgreSQL, nous pouvons vous accompagner dans la préparation et la réalisation de cet upgrade, n’hésitez pas à nous contacter.