TOOLinux

Le journal du Libre

Ce qui a changé avec la sortie de PostgreSQL 13

lundi 5 octobre 2020

Le PostgreSQL Global Development Group annonçait il y a quelques jours la sortie de PostgreSQL 13, dernière version en date de la base de données open source (SGBD). Voici les principales nouveautés.

Ce qui a changé avec la sortie de PostgreSQL 13

Plus d’efficacité et de performances : la version 13 est disponible depuis le 24 septembre. C’est la première grande révision depuis la sortie de PostgreSQL 12 en octobre 2019.

C’est quoi PostgreSQL ?

PostgreSQL est un système de gestion de bases de données relationnelle et objet. Il est libre et disponible sous licence BSD. Sa première version date de 1996. Le projet a en effet été démarré il y a plus de 30 ans à l’université de Californie, à Berkeley.

Comme Apache et Linux, PostgreSQL n’est "pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d’entreprises".

PostgreSQL 13 : nouveautés

PostgreSQL 13 entend améliorer t le système d’indexation et de recherche, au bénéfice des bases de données volumineuses : réduction de l’espace disque occupé et gains de performance pour les index. Les notes de version peuvent être consultées ici (en anglais).

Gains de performance

Tout comme la version 12, PostgreSQL 13 gère mieux la duplication de données dans un index B-tree, type standard d’index. Cela réduit l’espace utilisé par les index B-tree tout en améliorant la performance des requêtes.

PostgreSQL 13 introduit le tri incrémental, dans lequel les données triées lors d’une étape précédente du plan de requêtage peuvent accélérer le tri dans une étape ultérieure de ce même plan.

La fonctionnalité d’agrégation par hachage peut améliorer différents types requêtes utilisant les agrégats et les grouping sets, en évitant aux agrégats volumineux de devoir tenir entièrement en mémoire. Les requêtes sur des tables partitionnées sont plus performantes ; il y a désormais davantage de possibilités d’écarter des partitions, ou de les joindre directement.

Optimisations dans l’administration

PostgreSQL 13 poursuit l’amélioration du vacuum (qui permet de récupérer l’espace de stockage après mise à jour ou suppression de lignes) en introduisant la parallélisation du vacuum pour les index. La charge induite par cette fonctionnalité peut être finement ajustée par l’administrateur qui peut définir le nombre de processus parallèles à lancer.

Les slots de réplication qui sont utilisés pour éviter la suppression des journaux de transactions (WAL) avant leur réception par un réplica, peuvent être finement configurés dans PostgreSQL 13. Cela permet de définir le nombre maximum de fichiers WAL à conserver et ainsi aider à la prévention des erreurs de saturation de l’espace disque.

PostgreSQL 13 ajoute également plusieurs éléments de suivi de l’activité de la base de données par l’administrateur : statistiques d’utilisation des WAL par EXPLAIN, progression de la sauvegarde en continu et progression des commandes ANALYZE. L’intégrité de la sortie de la commande pg_basebackup peut, de plus, être vérifiée avec la nouvelle commande pg_verifybackup.

Développement d’applications

Cette version ajoute la fonction datetime() au support de SQL/JSON path. Celle-ci convertit les dates d’un format valide (des chaînes ISO 8601, par exemple) en types natifs PostgreSQL. De plus, la fonction de génération UUID v4, gen_random_uuid(), est maintenant disponible sans extension.

Le système de partitionnement de PostgreSQL est plus souple maintenant que les tables partitionnées supportent la réplication logique et les déclencheurs (triggers) BEFORE de niveau ligne.

Enfin, la syntaxe FETCH FIRST a été étendue pour y inclure la clause WITH TIES. WITH TIES permet d’inclure toutes les lignes liées à la dernière ligne du résultat fourni par ORDER BY.

Amélioration de la sécurité

PostgreSQL 13 ajoute le concept « d’extension de confiance », qui permet aux utilisateurs d’installer les extensions identifiées comme de « confiance » par un superutilisateur. Certaines extensions incluses dans PostgreSQL sont définies comme de confiance par défaut : pgcrypto, tablefunc, hstore, parmi d’autres.

Pour les applications qui nécessitent des méthodes d’authentification sécurisées, PostgreSQL 13 permet aux clients d’exiger l’agrégation de canaux lors de l’utilisation de l’authentification SCRAM. Le foreign data wrapper de PostgreSQL (postgres_fdw) peut maintenant utiliser une authentification à base de certificats.

Télécharger PostgreSQL 13

PostgreSQL est disponible en téléchargement gratuit sous forme de paquetages ou d’installateurs pour plusieurs plateformes (Linux, Solaris, BSD, macOS, Windows) depuis cette page. Le code-source est lui accessible sur git.

Migration depuis PostgreSQL 13

Attention, si vous effectuez une migration de PostgreSQL 12 à 13 , prenez connaissance des risques d’incompatibilité répertoriés sur cette page.