PostgreSQL 14 versione

Dopu un annu di sviluppu, hè statu publicatu un novu ramu stabile di u DBMS PostgreSQL 14. L'aghjurnamenti per u novu ramu seranu liberati annantu à cinque anni finu à nuvembre 2026.

Innuvazioni principali:

  • Aghjunghje supportu per accede à e dati JSON cù espressioni simili à array: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE détails['attributes']['size'] = '"medium"';

    Una sintassi simili hè implementata per i dati chjave / valore furniti da u tipu hstore. Sta sintassi hè stata inizialmente implementata cù un framework universale, chì in u futuru pò esse usatu per altri tipi. Esempiu per u tipu hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable; UPDATE mytable SET h['c'] = 'novu';

  • A famiglia di tippi per a definizione di intervalli hè stata allargata cù novi tipi di "multirange", chì permettenu di specificà listi urdinati di intervalli di valori senza sovrapposizione. In più di ogni tipu di gamma esistenti, u so propiu tipu multirange hè prupostu, per esempiu, u tipu "int4range" currisponde à "int4multirange", è u tipu "daterange" currisponde à "datemultirange". L'usu di novi tipi simplificà u disignu di e dumande chì manipulanu sequenze cumplesse di intervalli. SELEZIONA '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • L'ottimisazioni sò state fatte per migliurà u funziunamentu di i sistemi d'alta carica chì trattanu un gran numaru di cunnessione. In certi testi, un aumentu duppiu di u rendiment hè osservatu.
  • L'efficienza di l'indici B-tree hè stata migliurata è u prublema cù a crescita di l'indici quandu i tavulini sò spessu aghjurnati hè stata risolta.
  • Aghjunghje supportu per u modu di trasmissione di richieste di pipeline di u cliente (implementatu à u livellu libpq), chì vi permette di accelerà significativamente i scenarii di basa di dati assuciati cù a realizazione di un gran numaru di picculi operazioni di scrittura (INSERT/UPDATE/DELETE) mandendu u a prossima dumanda senza aspittà u risultatu di a precedente. U modu aiuta ancu à accelerà u travagliu nantu à e cunnessione cù ritardi longu di consegna di pacchetti.
  • Capacità rinfurzate per cunfigurazioni distribuite chì implicanu parechji servitori PostgreSQL. In l'implementazione di a replicazione logica, avà diventa pussibule di mandà transazzione in modalità streaming chì sò in u prucessu di esicuzzioni, chì ponu migliurà significativamente u rendiment di replicazione di grandi transazzioni. Inoltre, a decodificazione logica di e dati ricevuti durante a replicazione logica hè stata ottimizzata.
  • U mecanismu di cunnessione di e tabelle esterne Foreign Data Wrapper (postgres_fdw) hà aghjustatu u supportu per l'elaborazione di e dumande parallele, chì hè attualmente applicabile solu quandu si cunnetta à altri servitori PostgreSQL. postgres_fdw aghjusta ancu supportu per aghjunghje dati à e tavule esterne in modu batch è a capacità di impurtà tavule partizionate specificando a direttiva "IMPORT FOREIGN SCHEMA".
  • L'ottimisazioni sò state fatte à l'implementazione di l'operazione VACUUM (raccolta di basura è imballaggio di almacenamiento di discu). Un modu di pulizia d'emergenza hè statu aghjuntu chì salta l'operazioni di pulizia non essenziali se sò create e cundizioni di avvolgimentu di l'ID di transazzione. Overhead ridutta durante u processu di l'indici in u formatu B-Tree. L'esekzione di l'operazione "ANALYZE", chì recullà statistiche nantu à u funziunamentu di a basa di dati, hè stata accelerata significativamente.
  • Aghjunghje a capacità di cunfigurà u metudu di cumpressione utilizatu in u sistema TOAST, chì hè rispunsevule per almacenà dati grande, cum'è blocchi di testu o infurmazione geomètrica. In più di u metudu di compressione pglz, TOAST pò avà aduprà l'algoritmu LZ4.
  • L'arnesi per u seguimentu di u funziunamentu di u DBMS sò stati allargati. Visti aghjunte per seguità u prugressu di i cumandamenti COPY (pg_stat_progress_copy), statistiche nantu à i slot di replicazione (pg_stat_replication_slots) è l'attività ligata à u logu di transazzione WAL (pg_stat_wal). A funzione compute_query_id hè stata aghjunta, chì permette à diversi sottosistemi, cum'è pg_stat_activity è EXPLAIN VERBOSE, per seguità e dumande assignendu un identificatore unicu per ogni dumanda.
  • L'ottimisazioni sò state aghjunte à u pianificatore di dumande per migliurà u processu parallelu di e dumande è migliurà a prestazione di l'esecuzione simultanea di operazioni di scansione di record sequenziale, l'esecuzione parallela di e dumande in PL / pgSQL utilizendu u cumandimu "RETURN QUERY", è l'esecuzione parallela di e dumande in " REFRESH VISTA MATERIALIZZATA ". Per migliurà a prestazione di fusioni anidificate cicliche (join), hè statu implementatu u supportu per caching supplementari.
  • E statistiche avanzate ponu avà esse aduprate per ottimisà l'espressioni, è l'ordine incrementale pò avà esse usatu per ottimisà e funzioni di a finestra.
  • E prucedure almacenate chì permettenu di gestisce transazzione in blocchi di codice supportanu avà a definizione di dati di ritornu cù i paràmetri "OUT".
  • A funzione date_bin aghjunta à arrotonda i valori di timestamp secondu un intervallu specificatu. SELECT date_bin('15 minuti', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Aghjunghjite l'espressioni SEARCH è CYCLE definite in u standard SQL per fà più faciule d'ordine è identificà i ciculi in Espressioni Common Table (CTE) recursive. 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;
  • In l'utilità psql, l'autocompletion di cumandamenti cù tabulazioni hè stata migliurata, l'abilità di vede l'argumenti di a funzione hè stata aghjunta à u cumandamentu "\df", è l'statistiche affissate sò allargate à u cumandamentu "\dX".
  • Hè pussibule assignà privilegi di sola lettura o di scrittura à l'utilizatori. I privilegii ponu esse stabiliti nantu à e tabelle, viste è schemi individuali utilizendu i roli predefiniti pg_read_all_data è pg_write_all_data. GRANT pg_read_all_data TO user1;
  • Nuvelle installazioni predeterminate per l'autentificazione di password utilizendu SCRAM-SHA-256 invece di md5 (u paràmetru "password_encryption" quandu genera postgresql.conf hè avà stabilitu à "scram-sha-256").

Source: opennet.ru

Add a comment