PostgreSQL 15 Beta 1

Par:
fredericmazue

ven, 20/05/2022 - 10:53

Le PostgreSQL Global Development Group annonce que la première version bêta de PostgreSQL 15 est désormais disponible en téléchargement. Cette version contient des aperçus de toutes les fonctionnalités qui seront disponibles lorsque PostgreSQL 15 sera généralement disponible, bien que certains détails de la version puissent changer pendant la période bêta Voici les points forts de PostgreSQL 15

Expérience développeur

PostgreSQL 15 ajoute de nouvelles fonctionnalités pour simplifier et améliorer l'expérience des développeurs.

Cette version introduit MERGE, une commande standard SQL pour l'exécution conditionnelle d'opérations d'écriture (INSERT, UPDATE ou DELETE) sur les données. Avant cette version, le même comportement pouvait être obtenu à l'aide de procédures stockées ou, de manière limitée, avec INSERT ... ON CONFLICT. Avec PostgreSQL 15, les développeurs peuvent écrire des requêtes simples et expressives pour choisir l'action de modification de données appropriée à entreprendre.

PostgreSQL a ajouté la prise en charge de JSON en 2012 dans le cadre de la version 9.2. La norme SQL/JSON, publiée cinq ans plus tard, spécifiait une variété d'interfaces pour accéder et manipuler les données JSON stockées dans des bases de données relationnelles. PostgreSQL 15 s'appuie sur sa prise en charge existante du langage de chemin SQL/JSON en incluant davantage de fonctions SQL/JSON standard. Ceux-ci incluent les constructeurs SQL/JSON, les fonctions de requête/introspection et la possibilité de convertir les données JSON en table.

PostgreSQL 15 ajoute plus de fonctions d'expression régulière, notamment regexp_count , regexp_instr, regexp_like et regexp_substr. La fonction range_agg, introduite dans PostgreSQL 15 pour agréger les types de données de plage en types multi-plages, prend désormais également en charge l'agrégation de types multi-plages.

Performance

PostgreSQL 15 continue de s'appuyer sur ses gains de performances au cours des dernières versions. Cette version inclut une accélération significative du tri des données lors du tri sur des ensembles de données plus volumineux. En particulier, il s'agit d'ensembles de données qui dépassent le paramètre work_mem.

Les gains de performances de PostgreSQL 15 s'étendent à une variété de types de requêtes. Cela inclut l'introduction de la parallélisation pour les instructions SELECT DISTINCT et l'amélioration des performances des fonctions de fenêtre qui utilisent row_number(), rank() et count(). Les applications qui utilisent le wrapper de données étrangères PostgreSQL postgres_fdw pour gérer les données sur des serveurs PostgreSQL distants peuvent désormais permettre aux transactions d'être validées en parallèle. Il existe également plusieurs améliorations de performances pour les requêtes impliquant des tables avec des partitions.

Le système PostgreSQL et les tables TOAST, utilisés pour stocker des données plus grandes qu'une seule page (8 Ko), peuvent désormais utiliser la déduplication d'index et bénéficier d'index plus petits et de recherches plus rapides.

La commande psql \copy, utilisée pour charger des données en bloc, a également des améliorations de performances dans PostgreSQL 15.

Sauvegardes, archivage et compression

S'appuyant sur la version précédente qui introduisait la compression LZ4, PostgreSQL 15 ajoute la prise en charge de la compression Zstandard (zstd) à divers composants.

pg_basebackup, un utilitaire utilisé pour effectuer des sauvegardes complètes d'un cluster PostgreSQL, prend désormais en charge la compression côté serveur à l'aide de la compression Gzip, LZ4 ou Zstandard. Le client pg_basebackup peut désormais également décompresser les sauvegardes qui utilisent la compression LZ4 et Zstandard.

Les fichiers journaux en écriture anticipée (WAL) peuvent désormais être compressés à l'aide de la compression LZ4 et Zstandard via le paramètre de configuration wal_compression. De plus, PostgreSQL 15 ajoute également l'option recovery_prefetch qui peut aider à accélérer les opérations de récupération en préchargeant les blocs de données. Cette version ajoute un nouveau module appelé pg_walinspect qui vous permet d'inspecter les informations sur les fichiers WAL directement à partir de SQL.

PostgreSQL 15 vous permet d'effectuer un archivage WAL sans exécuter de commande shell en spécifiant une archive_library. Un exemple de bibliothèque d'archivage WAL peut être trouvé dans le module basic_archive. De plus, les extensions peuvent désormais définir leurs propres gestionnaires de ressources WAL qui leur permettent de travailler avec la réplication logique.

Réplication logique

PostgreSQL 15 introduit à la fois le filtrage des lignes et le filtrage des colonnes pour la réplication logique. De plus, les utilisateurs peuvent désormais spécifier de manière pratique de publier toutes les tables d'un schéma, alors qu'auparavant, il n'était possible de le faire que pour toutes les tables d'une base de données.

Cette version ajoute également plus de support pour la gestion des conflits. Un abonné peut désormais spécifier disable_on_error pour arrêter automatiquement la réplication logique en cas d'erreur. PostgreSQL 15 permet d'ignorer l'application des modifications à l'aide de la commande ALTER SUBSCRIPTION ... SKIP.

Administration

PostgreSQL 15 introduit le format jsonlog pour la journalisation. Cela permet aux journaux PostgreSQL d'être consommés par de nombreux programmes qui effectuent une agrégation et une analyse structurées des journaux. PostgreSQL 15 enregistre désormais par défaut les points de contrôle et les opérations de vide automatique qui sont lentes.

Le client psql a maintenant une commande appelée \dconfig pour inspecter les valeurs des paramètres de configuration. Par défaut, \dconfig affiche tout paramètre de configuration qui n'est pas défini sur sa valeur par défaut.

PostgreSQL 15 stocke désormais toutes les statistiques au niveau du serveur dans la mémoire partagée. Le serveur n'exécute plus de processus de collecte de statistiques.

La commande ALTER TABLE peut désormais modifier la méthode d'accès (ACCESS METHOD) d'une table, qui est utilisée pour définir le système de stockage utilisé par la table.

Sécurité

PostgreSQL 15 introduit de nouvelles valeurs par défaut lorsque les bases de données sont créées dans un cluster PostgreSQL. Lorsqu'une nouvelle base de données est créée, les utilisateurs extérieurs au propriétaire de la base de données (représenté par pg_database_owner) et les superutilisateurs ne peuvent plus créer d'objets dans le schéma public par défaut.

PostgreSQL 15 ajoute la prise en charge des "vues de l'invocateur de sécurité", qui utilise les privilèges de l'utilisateur exécutant la requête au lieu de l'utilisateur qui a créé la vue.

Les utilisateurs non privilégiés dans PostgreSQL 15 peuvent désormais obtenir des privilèges pour modifier les variables du serveur via SET et ALTER SYSTEM.

postgresql.org/download