Version du SGBD PostgreSQL 15

Après un an de développement, une nouvelle branche stable du SGBD PostgreSQL 15 a été publiée. Les mises à jour pour la nouvelle branche seront publiées sur cinq ans jusqu'en novembre 2027.

Principales nouveautés :

  • Ajout de la prise en charge de la commande SQL "MERGE", qui ressemble à l'expression "INSERT ... ON CONFLICT". MERGE vous permet de créer des instructions SQL conditionnelles qui combinent les opérations INSERT, UPDATE et DELETE en une seule expression. Par exemple, en utilisant MERGE, vous pouvez fusionner deux tables en insérant des enregistrements manquants et en mettant à jour ceux existants. FUSIONNER DANS customer_account ca EN UTILISANT recent_transactions t ON t.customer_id = ca.customer_id QUAND CORRESPOND PUIS METTRE À JOUR FIXER balance = balance + transaction_value LORSQUE NE CORRESPOND PAS PUIS INSÉRER (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
  • Les algorithmes de tri des données en mémoire et sur disque ont été considérablement améliorés. Selon le type de données dans les tests, on observe une augmentation de la vitesse de tri de 25 % à 400 %.
  • Les fonctions de fenêtre utilisant row_number(), Rank(), dense_rank() et count() ont été accélérées.
  • La possibilité d'exécution parallèle de requêtes avec l'expression « SELECT DISTINCT » a été implémentée.
  • Le mécanisme de connexion des tables externes Foreign Data Wrapper (postgres_fdw) implémente la prise en charge des validations asynchrones en plus de la capacité précédemment ajoutée de traiter de manière asynchrone les requêtes vers des serveurs externes.
  • Ajout de la possibilité d'utiliser les algorithmes LZ4 et Zstandard (zstd) pour compresser les journaux de transactions WAL, ce qui, sous certaines charges de travail, peut simultanément améliorer les performances et économiser de l'espace disque. Pour réduire le temps de récupération après une panne, la prise en charge de la récupération proactive des pages apparaissant dans le journal WAL a été ajoutée.
  • L'utilitaire pg_basebackup a ajouté la prise en charge de la compression côté serveur des fichiers de sauvegarde à l'aide des méthodes gzip, LZ4 ou zstd. Il est possible d'utiliser vos propres modules pour l'archivage, vous permettant ainsi de vous passer de l'exécution de commandes shell.
  • Une série de nouvelles fonctions ont été ajoutées pour traiter les chaînes à l'aide d'expressions régulières : regexp_count(), regexp_instr(), regexp_like() et regexp_substr().
  • La possibilité d'agréger des types multirange (« multirange ») a été ajoutée à la fonction range_agg().
  • Ajout du mode security_invoker, qui vous permet de créer des vues qui s'exécutent en tant qu'utilisateur appelant plutôt qu'en tant que créateur de vue.
  • Pour la réplication logique, la prise en charge du filtrage des lignes et de la spécification des listes de colonnes a été implémentée, permettant du côté de l'expéditeur de sélectionner un sous-ensemble de données de la table pour la réplication. De plus, la nouvelle version simplifie la gestion des conflits, par exemple, il est désormais possible de sauter les transactions conflictuelles et de désactiver automatiquement un abonnement lorsqu'une erreur est détectée. La réplication logique permet l'utilisation de commits en deux phases (2PC).
  • Un nouveau format de journal a été ajouté : jsonlog, qui enregistre les informations sous une forme structurée en utilisant le format JSON.
  • L'administrateur a la possibilité de déléguer des droits individuels aux utilisateurs pour modifier certains paramètres de configuration du serveur PostgreSQL.
  • L'utilitaire psql a ajouté la prise en charge de la recherche d'informations sur les paramètres (pg_settings) à l'aide de la commande « \dconfig ».
  • L'utilisation de la mémoire partagée est assurée pour accumuler des statistiques sur le fonctionnement du serveur, ce qui permet de s'affranchir d'un processus distinct de collecte de statistiques et de réinitialisation périodique de l'état sur le disque.
  • La possibilité d'utiliser les paramètres régionaux ICU par défaut « ICU Collation » a été fournie ; auparavant, seuls les paramètres régionaux libc pouvaient être utilisés comme paramètres régionaux par défaut.
  • Une extension intégrée pg_walinspect a été proposée, qui vous permet d'inspecter le contenu des fichiers avec les journaux WAL à l'aide de requêtes SQL.
  • Pour le schéma public, tous les utilisateurs, à l'exception du propriétaire de la base de données, ont vu leur autorité pour exécuter la commande CREATE révoquée.
  • Le support de Python 2 a été supprimé dans PL/Python. Le mode de sauvegarde exclusif obsolète a été supprimé.

Ajout : De 19h00 à 20h00 (heure de Moscou), il y aura un webinaire discutant des changements apportés à la nouvelle version avec Pavel Luzanov (Postgres Professional). Pour ceux qui ne peuvent pas participer à la diffusion, l'enregistrement du rapport de juin de Pavel « PostgreSQL 15 : MERGE and more » sur PGConf.Russia est ouvert.

Source: opennet.ru

Ajouter un commentaire