Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

PostgreSQL 13 s'accompagne d'améliorations significatives de son système d'indexation
D'optimisations pour l'administration quotidienne et de plus de commodités pour les développeurs d'applications

Le , par Stéphane le calme

81PARTAGES

12  0 
Le PostgreSQL Global Development Group a annoncé la sortie de PostgreSQL 13, la dernière version de la base de données open source.

PostgreSQL 13 inclut des améliorations significatives de son système d'indexation et de recherche qui profitent aux grandes bases de données, notamment des gains d'espace et de performances pour les index, des temps de réponse plus rapides pour les requêtes utilisant des agrégats ou des partitions, une meilleure planification des requêtes lors de l'utilisation de statistiques améliorées, etc.

Outre des fonctionnalités très demandées telles que le VACCUUM parallélisé et le tri incrémentiel, PostgreSQL 13 offre une meilleure expérience de gestion des données pour les charges de travail grandes et petites, avec des optimisations pour l'administration quotidienne, plus de commodités pour les développeurs d'applications et des améliorations de la sécurité.

Gains de performance continus

S'appuyant sur les travaux de la version précédente de PostgreSQL, PostgreSQL 13 peut gérer efficacement les données dupliquées dans les index B-tree, l'index de base de données standard. Cela réduit l'utilisation globale de l'espace dont les index B-tree ont besoin tout en améliorant les performances globales des requêtes.

PostgreSQL 13 introduit le tri incrémentiel, où les données triées d'une étape précédente dans une requête peuvent accélérer le tri à une étape ultérieure. De plus, PostgreSQL peut désormais utiliser le système de statistiques étendu (accessible via CREATE STATISTICS) pour créer des plans améliorés pour les requêtes avec des clauses OR et des recherches IN / ANY sur les listes.

Dans PostgreSQL 13, davantage de types de requêtes d'agrégats et d'ensembles de regroupement peuvent tirer parti de la fonctionnalité d'agrégation de hachage efficace de PostgreSQL, car les requêtes avec des agrégats volumineux n'ont pas à tenir entièrement en mémoire. Les requêtes avec des tables partitionnées ont reçu une amélioration des performances, car il existe désormais plus de cas où les partitions peuvent être élaguées et où les partitions peuvent être directement jointes.


Optimisations d'administration

VACUUM est une partie essentielle de l'administration PostgreSQL, permettant de récupérer l'espace de stockage occupé par des lignes supprimées. Lors des opérations normales de PostgreSQL, les lignes supprimées ou rendues obsolètes par une mise à jour ne sont pas physiquement supprimées de leur table. Elles restent présentes jusqu'à ce qu'un VACUUM soit lancé. C'est pourquoi, il est nécessaire de faire un VACUUM régulièrement, spécialement sur les tables fréquemment mises à jour.

Sans paramètre, VACUUM traite toutes les tables de la base de données courante. Avec un paramètre, VACUUM ne traite que cette table.

Toutefois, ce processus peut présenter des défis administratifs, bien que les versions antérieures de PostgreSQL aient été pensées pour alléger la surcharge de VACUUM.

PostgreSQL 13 continue d'améliorer le système de VACUUM avec l'introduction du VACUUM parallélisé pour les index. Outre les avantages de performances qu'elle offre, l'utilisation de cette nouvelle fonctionnalité peut être adaptée à des charges de travail spécifiques, car les administrateurs peuvent sélectionner le nombre de nœuds de calcul parallèles à exécuter. En plus de ces avantages en termes de performances, les insertions de données peuvent désormais déclencher le processus d'autovacuum.

Les emplacements de réplication, qui sont utilisés pour empêcher la suppression des journaux à écriture anticipée (WAL - write-ahead logs) avant qu'ils ne soient reçus par une réplique, peuvent être réglés dans PostgreSQL 13 pour spécifier le nombre maximal de fichiers WAL à conserver et aider à éviter le manque de disque les erreurs.

PostgreSQL 13 ajoute également d'autres moyens pour un administrateur de surveiller l'activité de la base de données, notamment en référençant les statistiques d'utilisation du WAL à partir d'EXPLAIN, la progression des sauvegardes de base en continu et la progression des commandes ANALYZE. De plus, l'intégrité de la sortie de la commande pg_basebackup peut être vérifiée à l'aide de la nouvelle commande pg_verifybackup.

Commodités de développement d'applications

PostgreSQL 13 rend encore plus facile le travail avec des types de données PostgreSQL provenant de différentes sources de données. Cette version ajoute la fonction datetime() à sa prise en charge des chemins SQL / JSON, qui convertit les formats d'heure valides (par exemple, les chaînes ISO 8601) en types natifs de PostgreSQL. De plus, la fonction de génération UUID v4, gen_random_uuid(), est désormais disponible sans avoir à installer d'extensions.

Le système de partitionnement de PostgreSQL est plus flexible, car les tables partitionnées prennent entièrement en charge la réplication logique et les déclencheurs au niveau des lignes AVANT.

La syntaxe FETCH FIRST de PostgreSQL 13 est maintenant étendue pour inclure la clause WITH TIES. Lorsqu'il est spécifié, WITH TIES inclut toutes les lignes qui, selon la clause ORDER BY, « se lient » à la dernière ligne du jeu de résultats.

Améliorations de la sécurité

Le système d’extension de PostgreSQL est un élément clé de sa robustesse, car il permet aux développeurs d’étendre ses fonctionnalités. Dans les versions précédentes, les nouvelles extensions ne pouvaient être installées que par un super-utilisateur de base de données. Pour faciliter l’utilisation de l’extensibilité de PostgreSQL, PostgreSQL 13 ajoute le concept d« d’extension de confiance », qui permet aux utilisateurs de base de données d’installer des extensions qu’un superutilisateur marque comme étant « fiables ». Certaines extensions intégrées sont marquées comme approuvées par défaut, notamment pgcrypto, tablefunc, hstore, etc.

Pour les applications qui nécessitent des méthodes d'authentification sécurisées, PostgreSQL 13 permet aux clients d'exiger une liaison de canal lors de l'utilisation de l'authentification SCRAM, et le wrapper de données étrangères PostgreSQL (postgres_fdw) peut désormais utiliser l'authentification basée sur les certificats.

« PostgreSQL 13 illustre la collaboration et le dévouement de notre communauté mondiale pour renforcer les capacités de la base de données relationnelle open source la plus avancée au monde », a déclaré Peter Eisentraut, membre de l'équipe centrale de PostgreSQL. « Les innovations que chaque version apporte avec sa réputation de fiabilité et de stabilité sont la raison pour laquelle plus de gens choisissent d'utiliser PostgreSQL pour leurs applications. »

Source : PostgreSQL

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de champomy62
Membre averti https://www.developpez.com
Le 25/10/2020 à 1:13
Il faut que je teste cette version car je suis curieux de savoir si le LEFT JOIN s'est ameliore.

Presentement en version 11, j'ai une vue qui comporte 9 jointures dont 4 LEFT JOIN. La table la plus grosse fait 180 MO (1,8 millions de ligne) suivit de la deuxieme a 20MB. Pour le reste c'est inferieur a 1MB. Il faut 4 a 6 secondes pour que la vue s'execute...
0  0 
Avatar de SQLpro
Rédacteur https://www.developpez.com
Le 26/10/2020 à 9:13
Citation Envoyé par champomy62 Voir le message
Il faut que je teste cette version car je suis curieux de savoir si le LEFT JOIN s'est ameliore.

Presentement en version 11, j'ai une vue qui comporte 9 jointures dont 4 LEFT JOIN. La table la plus grosse fait 180 MO (1,8 millions de ligne) suivit de la deuxieme a 20MB. Pour le reste c'est inferieur a 1MB. Il faut 4 a 6 secondes pour que la vue s'execute...
Probablement à cause de GEQO. Augmente le paramètre GEQO join à 12....

A +
0  0