Les nouveautés de PostgreSQL 16

Les nouveautés de PostgreSQL 16Je ne vais pas là vous faire la liste exhaustive des nouveautés de la version 16 du moteur de bases de données PostgreSQL. Comme à l’accoutumée, je vais vous sélectionner celles qui me semblent plus importantes. Et c’est évidement très subjectif.

Parallélisme

Il est désormais pris en charge au niveau :

Réplication logique

Les machines abonnées aux publications peuvent prendre plus facilement en charge les requêtes importantes qui portent directement sur les données de leur propre instance. C’est également le cas des machines qui publient leurs tables à leurs abonnés.

JSON

Les versions se suivent et voient PostgreSQL prendre le leadership sur le traitement du JSON, par la multiplication des fonctions et des opérateurs. Les fonctions JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT() et JSON_OBJECTAGG() ont été intégrées au SQL standard. Vous avez désormais la possibilité de tester le contenu d’un champ pour savoir s’il s’agit d’un JSON : IS JSON.

Configuration

Les expressions régulières sont désormais supportées dans les fichiers de configuration pg_hba.conf au niveau des utilisateurs et des bases et pg_ident.conf pour les utilisateurs.

Autre innovation de taille : vous pouvez utiliser les directives include, include_if_exists et include_dir dans ces deux fichiers de configuration qui gèrent les modalités de connexion à l’instance.

Réindexation

Les commande SQL REINDEX DATABASE et système reindexdb ne prennent plus en charge la réindexation des tables du catalogue. Désormais, vous devrez taper REINDEX SYSTEM en SQL ou reindexdb –system au niveau du système.

VACUUM/ANALYZE

Les commandes VACUUM et ANALYZE peuvent désormais utiliser l’espace mémoire de type shared buffer configuré dans le pg_hba.conf qui, sur un serveur dédié, est fixé à 25% de la RAM de la machine. Pour ce faire, vous devrez ajouter l’option BUFFER_USAGE_LIMIT aux commandes SQL VACUUM/ANALYZE et l’option –buffer-usage-limit à la commande système vaccumdb. La valeur par défaut est déterminée par la directive variable vacuum_buffer_usage_limit, configurée dans le fichier postgresql.auto.conf, qui contrôle également le process autovacuum.

Les commandes SQL VACUUM et système vacuumdb peuvent désormais défragmenter les seules tables de type TOAST à l’aide de la clause PROCESS_MAIN passée à false ou de l’option –no-process-main.

Vues système

La version 16 de PostgreSQL se voit affublée d’une nouvelle vue système, pg_stat_io qui permet d’accéder à toutes les statistiques d’entrée/sortie.

Sous-requêtes

Vous ne serez plus désormais contraints à utiliser un alias associé à vos sous-requêtes à l’intérieur d’une clause FROM.

Sauvegardes

Dans vos sauvegardes logiques effectuées par la commande pg_dump, vous pouvez désormais inclure ou exclure partitions et tables liées à l’aide des commutateurs –table-and-children, –exclude-table-and-children et –exclude-table-data-and-children. pg_dump prend en charge la compression LZ4 et Zstandard.

PostgreSQL /