Izdanje SDB PostgreSQL 14

Nakon godinu dana razvoja objavljena je nova stabilna verzija SDB PostgreSQL 14. Ažuriranja za novu verziju izlazit će tokom pet godina do novembra 2026. godine.

Glavne novosti:

  • Dodana je podrška za pristup podacima JSON putem izraza, koji podsjećaju na rad s nizovima: SELECT (‘{ „postgres”: { „release”: 14 }}’::jsonb)[‘postgres’][‘release’]; SELECT * FROM test WHERE details[‘attributes’][‘size’] = ‘„medium”‘;

    Slična sintaksa implementirana je i za podatke formata ključ/vrednost, koje osigurava tip hstore. Ova sintaksa prvotno je implementirana korišćenjem univerzalnog okvira, koji se u budućnosti može iskoristiti i za druge tipove. Primer za tip hstore: INSERT INTO mytable VALUES (‘a=>b, c=>d’); SELECT h[‘a’] FROM mytable; UPDATE mytable SET h[‘c’] = ‘new’;

  • Porodica tipova za definisanje opsega proširena je novim tipovima „multirange”, omogućavajući postavljanje uređivanih lista nepokrivenih opsega vrednosti. Pored svakog postojećeg range-tipa predložen je njegov multirange-tip, na primer, tipu „int4range” odgovara „int4multirange”, a „daterange” — „datemultirange”. Korišćenje novih tipova pojednostavljuje formiranje upita koji manipulišu složenim sekvencama opsega. SELECT ‘{[3,7), [8,9)}’::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Unete su optimizacije za povećanje performansi sistema pod visokim opterećenjem, koji obrađuju veliki broj veza. U nekim testovima primećen je dvostruki porast performansi.
  • Povećana je efikasnost rada B-tree indeksa i rešen je problem rasta indeksa pri čestom ažuriranju tabela.
  • Dodata je podrška za rad na strani klijenta (implementirana na nivou libpq) režima transporta zahteva putem cevovoda (pipeline), koji značajno ubrzava scenarije rada s BД, vezane za izvršavanje velikog broja malih operacija umetanja (INSERT/UPDATE/DELETE) slanjem sledećeg zahteva bez čekanja na rezultat prethodnog. Ovaj režim takođe pomaže u ubrzanju rada pri vezama s velikim kašnjenjem isporuke paketa.
  • Proširene su mogućnosti za distribuirane konfiguracije, koje uključuju više strežnikov PostgreSQL. V implementaciji logične replikacije je dodana možnost pošiljanja transakcij med izvajanjem v tokovnem načinu, kar znatno povečuje učinkovitost replikacije velikih transakcij. Poleg tega je bila optimizirana logična dekodacija podatkov, ki prihajajo v procesu logične replikacije.
  • V mehanizmu povezovanja zunanjih tabel Foreign Data Wrapper (postgres_fdw) je bila dodana podpora za paralelno obdelavo poizvedb, ki je trenutno uporabna le pri povezovanju z drugimi strežniki PostgreSQL. V postgres_fdw je tudi dodana podpora za dodajanje podatkov v zunanje tabele v paketnem načinu in možnost uvoza particioniranih tabel preko navedbe direktive 'IMPORT FOREIGN SCHEMA'.
  • Izvedene so bile optimizacije pri implementaciji operacije VACUUM (čiščenje in pakiranje diska). Dodan je način nujnega čiščenja ('emergency mode'), ki preskoči nepomembne operacije čiščenja, če nastanejo pogoji za prehod na drugo kolo številk identifikatorjev transakcij (transaction ID wraparound). Zmanjšani so bili stroški pri obdelavi indeksov v formatu B-Tree. Znatno je pospešeno izvajanje operacije 'ANALYZE', ki zbira statistiko o delovanju Baze podatkov.
  • Dodana je možnost prilagajanja metode stiskanja, ki se uporablja v sistemu TOAST, ki skrbi za shranjevanje velikih podatkov, kot so besedilni bloki ali geometrijske informacije. Poleg metode stiskanja pglz je v TOAST zdaj mogoče uporabiti tudi algoritem LZ4.
  • Razširjena so sredstva za nadzor delovanja SODB. Dodana so pogleda za spremljanje napredka izvajanja ukazov 'COPY' (pg_stat_progress_copy), statistike o replikacijskih prostorskih mestih (pg_stat_replication_slots) ter dejavnosti, povezane z WAL-dnevniki transakcij (pg_stat_wal). Dodana je funkcija compute_query_id, ki vključuje v različnih podsistemih, kot so pg_stat_activity in EXPLAIN VERBOSE, sledenje poizvedbam z dodelitvijo enotnega identifikatorja za vsako poizvedbo.
  • V načrtovalniku poizvedb so bile dodane optimizacije, ki izboljšujejo paralelno obdelavo poizvedb in omogočajo povečanje zmogljivosti hkratnega izvajanja operacij zaporednega skeniranja zapisov, paralelnega zagon poizvedb v PL/pgSQL s pomočjo ukaza „RETURN QUERY“ ter paralelnega izvajanja poizvedb za „REFRESH MATERIALIZED VIEW“. Za povečanje zmogljivosti cikličnih vgrajenih povezav (join) je bila uvedena podpora za dodatno predpomnjenje.
  • Za optimizacijo izrazov se lahko zdaj uporablja razširjena statistika, za optimizacijo okenskih funkcij pa - inkrementalno razvrščanje.
  • V shranjenih postopkih, ki omogočajo upravljanje transakcij v blokih kode, je bila uvedena podpora za določanje vračanih podatkov s pomočjo parametrov „OUT“.
  • Dodana je funkcija date_bin za zaokrožanje vrednosti tipa timestamp v skladu z določenim intervalom. SELECT date_bin(’15 minutes’, TIMESTAMP ‘2020-02-11 15:44:17’, TIMESTAMP ‘2001-01-01’); 2020-02-11 15:30:00
  • Dodana so bila v standardu SQL določena izraza SEARCH in CYCLE, ki poenostavljata razvrščanje in odkrivanje ciklov v rekurzivnih splošnih tabelarnih izrazih (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;
  • V orodju psql je bilo izboljšano samodejno dopolnjevanje ukazov s tabulatorjem, v ukazu „\df“ je dodana možnost prikaza argumentov funkcij, v ukazu „\dX“ pa je razširjena izpisana statistika.
  • Dodana je možnost dodeljevanja privilegijev uporabnikom, ki omogočajo samo branje ali samo pisanje. Privilegiji se lahko dodelijo v zvezi z individualnimi tabelami, pogledi in shemami s pomočjo predhodno določenih vlog pg_read_all_data in pg_write_all_data. GRANT pg_read_all_data TO user1;
  • V novih namestitvah je privzeto zagotovljena uporaba geslenske avtentikacije z metodo SCRAM-SHA-256 namesto md5 (parameter „password_encryption“ pri generiranju postgresql.conf je zdaj nastavljen na vrednost ‘scram-sha-256’).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster