Principales fonctionnalités de PostgreSQL 14
Performance
PostgreSQL 14 poursuit la tendance des versions récentes en offrant des avantages de performances aux charges de travail de toutes tailles.
Cette version présente des améliorations significatives du débit des transactions pour les systèmes PostgreSQL qui ont un grand nombre de connexions à la base de données, qu'ils soient dans un état actif ou inactif.
PostgreSQL 14 contient également des gains supplémentaires dans la réduction de la surcharge d'indexation de B-tree, y compris la réduction du gonflement sur les tables avec des index fréquemment mis à jour.
Les index GiST peuvent désormais prétrier les données pendant leur processus de construction, permettant à la fois une création d'index plus rapide et des index plus petits.
Les index SP-GiST prennent désormais en charge les index de couverture qui permettent aux utilisateurs d'ajouter des colonnes non recherchées supplémentaires à l'index via la clause INCLUDE.
Il y a de nombreuses améliorations au parallélisme des requêtes dans PostgreSQL 14.
En plus des améliorations de performances globales pour les lectures (scan) séquentielles parallèles, la directive RETURN QUERY de PL / pgSQL peut désormais exécuter des requêtes avec parallélisme.
REFRESH MATERIALIZED VIEW peut désormais également utiliser le parallélisme des requêtes.
PostgreSQL 14 introduit également la possibilité de tirer parti du parallélisme des requêtes lors de l'interrogation de bases de données distantes à l'aide de wrappers de données distantes.
Le wrapper de données distantes PostgreSQL (postgres_fdw) a ajouté la prise en charge de cela dans PostgreSQL 14 lorsque l'indicateur async_capable est défini.
postgres_fdw prend également en charge les insertions en bloc et peut importer des partitions de table à l'aide de IMPORT FOREIGN SCHEMA et peut maintenant exécuter TRUNCATE sur des tables distantes.
Cette version comporte également plusieurs améliorations du système de partitionnement, notamment des gains de performances lors de la mise à jour ou de la suppression de lignes sur des tables où seules quelques partitions sont affectées.
Dans PostgreSQL 14, les partitions peuvent désormais être détachées de manière non bloquante à l'aide de la commande ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY.
Le tri incrémentiel, introduit dans la version précédente, peut désormais être utilisé par les fonctions de fenêtre dans PostgreSQL 14.
Cette nouvelle version ajoute plus de fonctionnalités aux statistiques étendues , qui peuvent désormais être appliquées aux expressions .
PostgreSQL prend en charge la compression sur ses colonnes de «données surdimensionnées» (c'est-à-dire le système TOAST ) depuis des décennies, mais cette version ajoute la possibilité de choisir maintenant d'utiliser la compression LZ4 pour la compression de colonne.
Types de données et SQL
S'appuyant sur son support existant pour les types de plage , PostgreSQL 14 ajoute le nouveau type multirange qui vous permet de spécifier une liste ordonnée de plages non contiguës, par exemple:
Code : | Sélectionner tout |
SELECT datemultirange( daterange('2021-07-01', '2021-07-31'), daterange('2021-09-01', '2021-09-30'), daterange('2021-11-01', '2021-11-30'), daterange('2022-01-01', '2022-01-31'), daterange('2022-03-01', '2022-04-07') );
PostgreSQL 14 ajoute maintenant un cadre général d'indexation pour récupérer des informations dans des objets imbriqués.
Par exemple, vous pouvez maintenant récupérer des informations imbriquées dans le type JSONB de données à l'aide de la syntaxe d'indice, par exemple:
Code : | Sélectionner tout |
SELECT ('{ "this": { "now": { "works": "in postgres 14!" }}}'::jsonb)['this']['now']['works'];
Pour les expressions de table récursives (requêtes WITH), PostgreSQL 14 ajoute les commodités syntaxiques de SEARCH et CYCLE pour aider respectivement à l’ordonnancement et à la détection de cycle.
Il y a aussi la nouvelle fonction date_bin de PostgreSQL 14 qui peut aligner les horodatages avec des intervalles spécifiés, une technique connue sous le nom de «binning».
Administration
PostgreSQL 14 apporte de nombreuses améliorations à VACUUM, avec des optimisations orientées vers les index.
Autovacuum analyse désormais les tables partitionnées et peut propager des informations sur le nombre de lignes aux tables parentes.
Il y a aussi des gains de performances de ANALYZE qui peuvent être contrôlés avec des paramètres maintenance_io_concurrency.
PostgreSQL 14 inclut de nombreuses améliorations sur les informations pouvant être surveillées, y compris la possibilité de suivre la progression de COPY en utilisant la vue pg_stat_progress_copy.
Cette version vous permet de suivre l'activité WAL à partir de la vue pg_stat_wal et d'inspecter les statistiques des slots de réplication à partir de la vue pg_stat_replication_slots.
Il existe plusieurs nouveaux paramètres dans PostgreSQL 14 pour aider à gérer les connexions. Ceux-ci incluent idle_session_timeout, qui peut fermer les connexions inactives après la période spécifiée, et le paramètre client_connection_check_interval qui permet à PostgreSQL d'annuler les requêtes de longue durée si un client se déconnecte.
La commande REINDEX peut maintenant traiter tous les index enfants d'une table partitionnée, et PostgreSQL 14 ajoute l'utilitaire pg_amcheck pour aider à vérifier la corruption des données.
Réplication et récupération
PostgreSQL 14 ajoute de nombreux avantages en termes de performances pour la réplication logique, y compris la possibilité de diffuser les transactions en cours aux abonnés au lieu d'attendre qu'elles soient terminées.
La commande ALTER SUBSCRIPTION facilite l'ajout / la suppression de publications à l'aide de la nouvelle syntaxe ADD/DROP PUBLICATION.
Il y a des améliorations de performances dans PostgreSQL 14 sur la façon dont PostgreSQL démarre lors d'une récupération après incident, et vous pouvez maintenant utiliser pg_rewind sur une instance PostgreSQL qui est en mode veille.
Sécurité
PostgreSQL 14 ajoute la possibilité de donner aux utilisateurs des privilèges universels "lecture seule" et "écriture seule" sur les tables / vues / séquences grâce à l'utilisation des rôles prédéfinis pg_read_all_data et pg_write_all_data.
Cette version utilise également par défaut SCRAM-SHA-256 pour la gestion des mots de passe sur les nouvelles instances PostgreSQL. En outre, le paramètre clientcert dans pg_hba.conf doit désormais utiliser les valeurs de verify-ca ou verify-full au lieu des anciennes valeurs.
PostgreSQL 14 peut utiliser le "nom distinctif" (DN) d'un certificat pour l'authentification basée sur un certificat avec un paramètre clientname=DN dans le fichier pg_hba.conf.
Caractéristiques supplémentaires
De nombreuses autres nouvelles fonctionnalités et améliorations ont été ajoutées à PostgreSQL 14, dont certaines peuvent être aussi importantes ou plus importantes pour votre cas d'utilisation que ce qui est mentionné ci-dessus. Veuillez consulter les notes de version pour une liste complète des fonctionnalités nouvelles et modifiées.
Source : Postgresql.org
Qu'en pensez-vous ?