Les nouveautés de PostgreSQL 10
La version de PostgreSQL 10 apporte d’importantes améliorations. Mais il lui manque toujours et encore un mécanisme de réplication Master-Master à la Gallera, si simple à mettre en oeuvre dans MariaDB !
Changement du nom du dossier xlog
Sous la version 10 de PostgreSQL, le dossier $PGDATA/xlog a été mué en $PGDATA/wal !
Réplication Publication-Abonnement
Désormais, PostgreSQL 10 dispose d’un système de réplication logique, de type Master-Slave, à l’image de ce qui existe dans MariaDB/MySQL ou dans SQL Server avec la publication-abonnement. Le mécanisme est d’une simplicité béate et utilise les instructions CREATE PUBLICATION et CREATE SUSBSCRIPTION ! Bien vu.
Partitionnement de tables
Même si le partitionnement de tables existait dans les versions antérieures de PostgreSQL, il était extrêmement complexe à mettre en oeuvre. La version 10 de PostgreSQL propose une grande simplification ! Sur le fond maintenant, le partitionnement de tables, lorsque vos données sont stockées sur une baie de disques, n’a pas grand intérêt du point de vue de la performance !
Parallélisme des requêtes
Introduit dans la version 9.6, PostgreSQL permet le parallélisme dans l’accès aux index, lors des jointures et aussi au niveau de l’exécution des sous-requêtes. Il faut rester extrêmement prudent dans l’utilisation du parallélisme du fait de la consommation de ressources entrant en concurrence avec l’activité des autres process ! Par défaut, le nombre de process réservé au parallélisme des requêtes est limité à 2 et se configure avec la directive max_parallel_workers_per_gather. L’augmentation de ce paramètre exige d’ajuster les directives max_worker_processes, ainsi que max_parallel_workers.
Statistiques étendues
PostgreSQL 10 offre désormais la possibilité de disposer de statistiques étendues sur les colonnes de tables. Vous disposez désormais des instructions CREATE STATISTICS, ALTER STATISTICS et DROP STATISTICS.
Logs
La fonction pg_current_logfile() permet d’obtenir le fichier de logs courant.
Colonne identity
Enfin, PostgreSQL propose désormais un type de colonne IDENTITY.
Tables de transition dans les triggers AFTER
Avec l’ajout des clauses REFERENCING OLD TABLE et REFERENCING NEW TABLE, vous disposez désormais de la possibilité de stocker les lignes d’une table avant et après modification au niveau des triggers AFTER.
Authentification SCRAM-SHA-256
PostgreSQL 10 propose désormais une méthode plus forte de chiffrement pour la transmission du mot de passe entre le client et le serveur lors de la connexion. Il est conseillé d’abandonner l’authentification md5 définie dans votre fichier pg_hba.conf par le chiffrement scram-sha-256. Pour chiffrer vos données, il faut recourir à l’utilisation d’un certificat SSL.
Exécution de programmes via FDW
Introduit dans les versions précédents, le mécanisme dit de Foreign Data Wrapper permet de lier une instance Oracle, MySQL/MariaDB ou Firebird à votre cluster PostgreSQL. Très utile lorsqu’il s’agit de migrer vos données vers PostgreSQL ou à l’occasion de la constitution d’un DataWareHouse ! Vous pouvez désormais exécuter un programme système à partir de PostgreSQL via file_fdw. N’oubliez pas de donner les droits nécessaire à l’utilisateur postgres, lorsque vous exécutez PostgreSQL sur un système Linux !
Statistiques multi-colonnes
Les développeurs de PostgreSQL ont ajouté les instructions CREATE STATISTICS, ALTER STATISTICS, DROP STATISTICS permettant un meilleur fonctionnement des requêtes utilisant les colonnes au niveau de la clause WHERE.