Les nouveautés de PostgreSQL 16
Je 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 :
- des jointures FULL et OUTER ;
- des fonctions string_agg() et array_agg().
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.
|
|
|
|
|
|