Sortie de la base de données PostgreSQL 14

AprÚs un an de développement, une nouvelle branche stable de la base de données PostgreSQL 14 est publiée. Des mises à jour pour cette nouvelle branche seront publiées pendant cinq ans jusqu'en novembre 2026.

Les principales nouveautés :

  • Ajout du support de l'accĂšs aux donnĂ©es JSON Ă  l'aide d'expressions, similaire Ă  la manipulation de tableaux : SELECT (‘{ «postgres»: { «release»: 14 }}’::jsonb)[‘postgres’][‘release’]; SELECT * FROM test WHERE details[‘attributes’][‘size’] = ‘»medium»‘;

    Une syntaxe similaire a Ă©tĂ© mise en Ɠuvre pour les donnĂ©es au format clĂ©/valeur fournies par le type hstore. Une telle syntaxe a Ă©tĂ© initialement mise en Ɠuvre Ă  l'aide d'un framework universel, qui pourra Ă  l'avenir ĂȘtre utilisĂ© pour d'autres types. Exemple pour le type hstore : INSERT INTO mytable VALUES (‘a=>b, c=>d’); SELECT h[‘a’] FROM mytable; UPDATE mytable SET h[‘c’] = ‘new’;

  • La famille de types pour la dĂ©finition de plages a Ă©tĂ© Ă©largie avec de nouveaux types «multirange», permettant de dĂ©finir des listes ordonnĂ©es de plages de valeurs non chevauchantes. En plus de chaque type de range existant, un type multirange correspondant a Ă©tĂ© proposĂ©, par exemple, le type «int4range» correspond Ă  «int4multirange», et «daterange» Ă  «datemultirange». L'utilisation de nouveaux types simplifie la formulation des requĂȘtes manipulant des sĂ©quences complexes de plages. SELECT ‘{[3,7), [8,9)}’::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Des optimisations ont Ă©tĂ© apportĂ©es pour amĂ©liorer les performances des systĂšmes fortement chargĂ©s traitant un grand nombre de connexions. Certains tests montrent un doublement des performances.
  • L'efficacitĂ© des index B-tree a Ă©tĂ© amĂ©liorĂ©e et un problĂšme de croissance des index lors de mises Ă  jour frĂ©quentes des tables a Ă©tĂ© rĂ©solu.
  • Ajout du support d'un mode de transmission de requĂȘtes en pipeline fonctionnant cĂŽtĂ© client (rĂ©alisĂ© au niveau de libpq), permettant d'accĂ©lĂ©rer considĂ©rablement les scĂ©narios de travail avec la base de donnĂ©es liĂ©s Ă  l'exĂ©cution d'un grand nombre de petites opĂ©rations d'insertion (INSERT/UPDATE/DELETE) en envoyant la requĂȘte suivante sans attendre le rĂ©sultat de la prĂ©cĂ©dente. Ce mode aide Ă©galement Ă  accĂ©lĂ©rer le travail lors de connexions avec de grandes latences de livraison de paquets.
  • Les capacitĂ©s pour des configurations distribuĂ©es incluant plusieurs ont Ă©tĂ© Ă©largies. serveurs PostgreSQL. Dans l'implĂ©mentation de la rĂ©plication logique, il est dĂ©sormais possible d'envoyer en mode flux des transactions en cours d'exĂ©cution, ce qui permet d'amĂ©liorer considĂ©rablement les performances de la rĂ©plication des grosses transactions. De plus, le dĂ©codage logique des donnĂ©es en cours de rĂ©plication logique a Ă©tĂ© optimisĂ©.
  • Le mĂ©canisme de connexion des tables externes Foreign Data Wrapper (postgres_fdw) a Ă©tĂ© amĂ©liorĂ© pour prendre en charge le traitement parallĂ©lisĂ© des requĂȘtes, qui est actuellement applicable uniquement lors de la connexion Ă  d'autres serveurs PostgreSQL. Dans postgres_fdw, la prise en charge de l'ajout de donnĂ©es dans des tables externes en mode batch et la possibilitĂ© d'importer des tables partitionnĂ©es via la directive « IMPORT FOREIGN SCHEMA » ont Ă©galement Ă©tĂ© ajoutĂ©es.
  • Des optimisations ont Ă©tĂ© apportĂ©es Ă  l'implĂ©mentation de l'opĂ©ration VACUUM (ramassage de dĂ©chets et rĂ©organisation du stockage sur disque). Un mode de nettoyage d'urgence (« emergency mode ») a Ă©tĂ© ajoutĂ©e, en sautant les opĂ©rations de nettoyage non essentielles, si les conditions de passage Ă  un deuxiĂšme tour d'identifiants de transaction (transaction ID wraparound) sont remplies. Les frais gĂ©nĂ©raux liĂ©s au traitement des index au format B-Tree ont Ă©tĂ© rĂ©duits. L'exĂ©cution de l'opĂ©ration « ANALYZE », qui collecte des statistiques sur le fonctionnement de la base de donnĂ©es, a Ă©tĂ© considĂ©rablement accĂ©lĂ©rĂ©e.
  • La possibilitĂ© de configurer la mĂ©thode de compression utilisĂ©e dans le systĂšme TOAST, chargĂ© du stockage de grandes donnĂ©es telles que des blocs de texte ou des informations gĂ©omĂ©triques, a Ă©tĂ© ajoutĂ©e. En plus de la mĂ©thode de compression pglz, l'algorithme LZ4 peut dĂ©sormais Ă©galement ĂȘtre utilisĂ© dans TOAST.
  • Les outils de surveillance du fonctionnement du SGBD ont Ă©tĂ© Ă©largis. Des vues pour suivre l'avancement des commandes « COPY » (pg_stat_progress_copy), des statistiques sur les slots de rĂ©plication (pg_stat_replication_slots) et des activitĂ©s liĂ©es au journal WAL des transactions (pg_stat_wal) ont Ă©tĂ© ajoutĂ©es. La fonction compute_query_id a Ă©tĂ© ajoutĂ©e, intĂ©grant dans diverse sous-systĂšmes, tels que pg_stat_activity et EXPLAIN VERBOSE, le suivi des requĂȘtes en leur attribuant un identifiant unique pour chaque requĂȘte.
  • Des optimisations ont Ă©tĂ© ajoutĂ©es au planificateur de requĂȘtes, amĂ©liorant le traitement parallĂšle des requĂȘtes et permettant d'augmenter la performance de l'exĂ©cution simultanĂ©e des opĂ©rations de balayage sĂ©quentiel des enregistrements, du lancement parallĂšle des requĂȘtes en PL/pgSQL Ă  l'aide de la commande « RETURN QUERY » et de l'exĂ©cution parallĂšle des requĂȘtes dans « REFRESH MATERIALIZED VIEW ». Pour amĂ©liorer les performances des jointures rĂ©cursives, un support pour la mise en cache supplĂ©mentaire a Ă©tĂ© mis en Ɠuvre.
  • Pour optimiser les expressions, des statistiques avancĂ©es peuvent dĂ©sormais ĂȘtre utilisĂ©es, et pour optimiser les fonctions de fenĂȘtre, un tri incrĂ©mental a Ă©tĂ© introduit.
  • Dans les procĂ©dures stockĂ©es, permettant de gĂ©rer les transactions dans des blocs de code, un support pour la dĂ©finition des donnĂ©es retournĂ©es Ă  l'aide des paramĂštres « OUT » a Ă©tĂ© mis en place.
  • La fonction date_bin a Ă©tĂ© ajoutĂ©e pour arrondir les valeurs de type timestamp en fonction de l'intervalle spĂ©cifiĂ©. SELECT date_bin(’15 minutes’, TIMESTAMP ‘2020-02-11 15:44:17’, TIMESTAMP ‘2001-01-01’); 2020-02-11 15:30:00
  • Des expressions SEARCH et CYCLE, dĂ©finies par la norme SQL, ont Ă©tĂ© ajoutĂ©es, simplifiant l'ordonnancement et l'identification des cycles dans les expressions de table communes rĂ©cursives (Common Table Expression, CTE). WITH RECURSIVE search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t.id = st.link ) SEARCH DEPTH FIRST BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Dans l'utilitaire psql, l'auto-complĂ©tion des commandes par tabulation a Ă©tĂ© amĂ©liorĂ©e, la commande « \df » permet maintenant d'afficher les arguments des fonctions, et la statistique affichĂ©e par la commande « \dX » a Ă©tĂ© Ă©largie.
  • Il est dĂ©sormais possible d'accorder aux utilisateurs des privilĂšges autorisant uniquement la lecture ou uniquement l'Ă©criture. Les privilĂšges peuvent ĂȘtre attribuĂ©s Ă  des tables, des vues et des schĂ©mas spĂ©cifiques Ă  l'aide des rĂŽles prĂ©dĂ©finis pg_read_all_data et pg_write_all_data. GRANT pg_read_all_data TO user1;
  • Pour les nouvelles installations, l'authentification par mot de passe utilise par dĂ©faut le schĂ©ma SCRAM-SHA-256 au lieu de md5 (le paramĂštre « password_encryption » dans la gĂ©nĂ©ration de postgresql.conf est dĂ©sormais rĂ©glĂ© sur ‘scram-sha-256’).

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster