PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Meilleures nouvelles fonctionnalités de PostgreSQL 14

Selon StackOverflow, PostgreSQL est la base de données open source la plus populaire, avec de plus en plus de développeurs et d'administrateurs souhaitant travailler avec. PostgreSQL 14, la dernière version publiée en septembre 2021, comporte plus de 200 améliorations et nouvelles fonctionnalités, qui se répartissent globalement en trois domaines :sécurité, performances et surveillance.

À partir de la version 1.9.2, publiée plus tôt cette année, ClusterControl prend désormais en charge la dernière version de PostgreSQL 14.

Dans cet article, nous examinerons les fonctionnalités les plus remarquables, les mises à jour majeures et les améliorations disponibles dans PostgreSQL 14.

Sécurité

Le changement de sécurité le plus important de PostgreSQL 14 est le passage à SCRAM comme authentification par défaut après l'introduction de l'authentification SCRAM-SHA-256 dans PostgreSQL 10. SCRAM fournit une solution beaucoup plus simple et puissante pour réglementer la conformité des données. Sécurité. L'authentification MD5 par défaut précédente a eu quelques faiblesses exploitées dans le passé.

Parallèlement à une authentification améliorée, PostgreSQL 14 simplifie le processus d'attribution de capacités d'écriture seule et de lecture seule aux utilisateurs sur les tables, les vues et les schémas en introduisant deux rôles prédéfinis, pg_write_all_data et pg_read_all_data. Le premier rôle facilite la création de privilèges de style super-utilisateur. Bien que pratique pour les activités et l'accès, ce type de compte doit être utilisé avec parcimonie. Ce dernier rôle le rend pratique pour accorder un accès en lecture seule à un utilisateur à toutes les tables, schémas et vues de la base de données. Ce rôle aura un accès en lecture par défaut à toutes les tables nouvellement créées.

Performances

Les entreprises traitent de plus en plus de données, et la vitesse, le volume et la variété (les trois V du Big Data) ne montrent aucun signe de ralentissement. PostgreSQL 14 a apporté des modifications très importantes pour pouvoir évoluer pour prendre en charge ces charges de travail et améliorer les performances. Cela peut être mieux regroupé dans les cinq domaines suivants :

Évolutivité et performances

PostgreSQL 14 offre d'énormes performances en termes de performances de suppression et de mise à jour sur des tables avec un nombre élevé de partitions. Cela permet aux suppressions et aux mises à jour sur les tables partitionnées d'utiliser l'élagage de partition au moment de l'exécution. Plus important encore, cette version peut évoluer vers plus de partitions qu'auparavant, permettant à PostgreSQL de gérer des bases de données beaucoup plus volumineuses qu'auparavant.

Dans PostgreSQL version 14, les partitions peuvent désormais également être détachées simultanément, ce qui facilite la gestion de grandes tables de données de séries chronologiques. Cela est possible grâce à la nouvelle fonction date_bin(), qui permet aux utilisateurs de résumer mieux et plus facilement les données de séries chronologiques dans des plages de dates.

PostgreSQL 14 a ajouté la prise en charge de la compression LZ4 pour TOAST. LZ4 utilise la dernière technologie de compression et se concentre sur l'amélioration de la vitesse de décompression et de compression des données de document. LZ4 améliorera les applications avec des documents XML et JSON plus volumineux, et cet algorithme de compression peut être configuré à la fois au niveau du système et des colonnes.

Bases de données distribuées et charges de travail

PostgreSQL 14 offre également des améliorations dans la mise à l'échelle horizontale d'une base de données en introduisant deux améliorations majeures dans postgres_fdw (emballage de données étrangères) qui contribuent à améliorer les performances des bases de données distribuées. Ces modifications prennent en charge l'insertion en bloc de données et les analyses de table parallèles sur des tables étrangères (lorsque async_capable est défini).

La mise en cache des connexions améliore également les performances en permettant l'ouverture des connexions entre les transactions. On peut également citer le mode pipeline Libpd, qui augmente les performances des bases de données distribuées en permettant de transmettre des flux de modifications sans attendre la confirmation du réseau à chaque commande.

Gérabilité 

PostgreSQL 14 résout également le problème du gonflement de l'index B-tree ; les index qui sont fréquemment mis à jour gonflent au fil du temps à cause des tuples morts qui peuvent être supprimés en exécutant un aspirateur.

De ce fait, un fractionnement de page irréversible peut être causé par une insertion ou une mise à jour lorsque la page se remplit entre deux vides. Cette version a amélioré le processus de vide en détectant et en supprimant les tuples morts entre les vides (paramètre INDEX_CLEANUP défini sur Auto).

Une autre amélioration du système de vide consiste à supprimer avec empressement les pages supprimées. Dans les versions précédentes, la suppression des pages supprimées nécessitait deux cycles de vide, en marquant d'abord la page comme supprimée et le second cycle libérait cet espace.

Optimisation des performances des requêtes et des index

La gestion des index dans le réglage des applications est une autre amélioration majeure de PostgreSQL 14. En particulier, REINDEX CONCURRENTLY et CREATE INDEX CONCURRENTLY permettent à plusieurs commandes de s'exécuter simultanément sans interférer les unes avec les autres. Plus sur les index, les index BRIN sont devenus plus flexibles car ils peuvent enregistrer de nombreuses valeurs min/max par plage, ce qui est précieux pour les groupes de valeurs dans chaque plage de pages. De plus, les index BRIN fonctionnent efficacement avec des données mal localisées dans le tas en utilisant des filtres bloom.

L'option FREEZE dans la commande COPY a été améliorée en mettant à jour les bits de visibilité de la page sur les performances de chargement des données. COPY en mode binaire est désormais plus rapide.

PostgreSQL 14 a affiné le parallélisme des requêtes en ajoutant le parallélisme des requêtes à REFRESH MATERIALIZED VIEW et RETURN QUERY. Ces améliorations ont été déployées pour les jointures de boucles imbriquées et les analyses séquentielles parallèles.

PostgreSQL 14 a augmenté le nombre d'endroits où les statistiques étendues peuvent être utilisées pour les expressions et l'estimation de la clause OR. Contrairement à auparavant, où les statistiques n'étaient que sur les colonnes, elles sont désormais autorisées sur un groupe d'expressions. La vue système pg_stats_ext_exprs rapporte de telles statistiques.

Réplication logique améliorée 

La réplication logique a été améliorée pour permettre le streaming de longues transactions en cours via l'API ou vers les abonnés. Dans les versions précédentes, les transactions supérieures à logical_decoding_work_mem étaient écrites sur le disque jusqu'à ce que la transaction soit terminée avant de répliquer la transaction sur l'abonné. Avec les nouvelles améliorations en place, la réplication logique gère plus efficacement de gros volumes d'instructions DDL.

Après chaque commande, la réplication logique écrit des messages d'invalidation du cache dans le WAL pour traitement en diffusant les transactions en cours. Ce processus crée des avantages significatifs en termes de performances.

Surveillance 

L'un des plus grands mots à la mode de 2022 est la surveillance, car les administrateurs et les développeurs veulent plus d'informations sur les performances au fil du temps. PostgreSQL 14 a introduit de nouvelles fonctionnalités pour faciliter la surveillance. Le changement le plus significatif de tous est le déplacement du système de hachage des requêtes de pg_stat_statement vers la base de données principale. La surveillance des requêtes a été autorisée sur plusieurs systèmes PostgreSQL et fonctions de journalisation à l'aide d'un seul ID.

Cette version a également introduit les nouveaux paramètres de surveillance suivants :

  1. Idle_session_timeout

  2. REINDEX sur les index enfants d'une table partitionnée

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Pg_stat_wal

Mettre à jour vers PostgreSQL 14

Si vous souhaitez mettre à niveau votre version actuelle de PostgreSQL vers la version 14, vous disposez de trois options principales pour effectuer cette tâche :

  1. Pg_dumpall :c'est un outil de sauvegarde logique qui vous permet de vider vos données et de les restaurer dans le nouveau PostgreSQL version. Ici, vous aurez une période d'indisponibilité qui variera en fonction de la taille de vos données. Vous devez arrêter le système ou éviter de nouvelles données dans le nœud principal, exécuter pg_dumpall, déplacer le vidage généré vers le nouveau nœud de base de données et le restaurer. Pendant ce temps, vous ne pouvez pas écrire dans votre base de données PostgreSQL principale pour éviter l'incohérence des données.

  2. Pg_upgrade :c'est un outil PostgreSQL pour mettre à jour votre version PostgreSQL. Cela pourrait être dangereux dans un environnement de production, et nous ne recommandons pas cette méthode dans ce cas. En utilisant cette méthode, vous aurez des temps d'arrêt, mais ils seront probablement considérablement moins longs qu'avec la méthode pg_dump précédente.

  3. Réplication logique :Depuis PostgreSQL 10, vous pouvez utiliser cette méthode de réplication qui vous permet de effectuez des mises à niveau de version majeures sans temps d'arrêt (ou presque). De cette manière, vous pouvez ajouter un nœud de secours dans la dernière version de PostgreSQL, et lorsque la réplication est à jour, vous pouvez effectuer un processus de basculement pour promouvoir le nouveau nœud PostgreSQL.

Pour des informations plus détaillées sur les nouvelles fonctionnalités de PostgreSQL 14, vous pouvez vous référer à la documentation officielle.

Conclusion

PostgreSQL 14 a vraiment amélioré le jeu pour les utilisateurs de cette base de données open source populaire. Désormais, les développeurs et les administrateurs disposent de capacités améliorées pour augmenter les performances et l'évolutivité, des améliorations pour les bases de données distribuées, une observabilité améliorée, et plus encore.

ClusterControl rend la mise à niveau vers les dernières versions technologiques simple et sans stress. Si vous n'utilisez pas déjà ClusterControl, vous pouvez l'évaluer gratuitement pendant 30 jours. Pour plus de détails sur la dernière version de ClusterControl 1.9.2, consultez les notes de version complètes.

Tenez-vous au courant de toutes les dernières nouvelles et des meilleures pratiques pour les bases de données open source les plus populaires en nous suivant sur Twitter et LinkedIn, et en vous abonnant à notre newsletter.