PostgreSQL 14 DBMS-i väljalase

Pärast aastast arendustööd on avaldatud PostgreSQL 14 DBMS-i uus stabiilne haru. Uue haru värskendused avaldatakse viie aasta jooksul kuni 2026. aasta novembrini.

Peamised uuendused:

  • Lisatud tugi JSON-andmetele juurdepääsuks massiivilaadsete avaldiste abil: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"keskmine"';

    Sarnast süntaksit rakendatakse hstore tüübi pakutavate võtme/väärtuste andmete jaoks. Seda süntaksit rakendati algselt universaalse raamistiku abil, mida saab tulevikus kasutada ka muude tüüpide jaoks. Näide hstore tüübi kohta: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable; UPDATE mytable SET h['c'] = 'uus';

  • Vahekondade määratlemise tüüpide perekonda on laiendatud uute „mitmevahemiku” tüüpidega, mis võimaldavad määrata mittekattuvate väärtusvahemike järjestatud loendeid. Lisaks igale olemasolevale vahemiku tüübile pakutakse välja oma mitmevahemiku tüüp, näiteks tüüp "int4range" vastab "int4multirange" ja tüüp "daterange" vastab "datemultirange". Uute tüüpide kasutamine lihtsustab keeruliste vahemike jadadega manipuleerivate päringute kujundamist. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(arvvahemik(1.0, 14.0), numrange(20.0, 25.0));
  • Paljusid ühendusi töötlevate suure koormusega süsteemide jõudluse parandamiseks on tehtud optimeerimisi. Mõne testi puhul täheldatakse jõudluse kahekordset tõusu.
  • B-puu indeksite efektiivsust on parandatud ja indeksi kasvu probleem tabelite sagedase uuendamise korral on lahendatud.
  • Lisatud on kliendipoolse (rakendatud libpq tasemel) päringute konveieredastuse režiimi tugi, mis võimaldab märkimisväärselt kiirendada andmebaasi stsenaariume, mis on seotud suure hulga väikeste kirjutamisoperatsioonide (INSERT/UPDATE/DELETE) sooritamisega, saates järgmise päringu, ootamata eelmise tulemust. Režiim aitab kiirendada ka pikkade pakettide kohaletoimetamise viivitustega ühendustega töötamist.
  • Täiustatud võimalused hajutatud konfiguratsioonide jaoks, mis hõlmavad mitut PostgreSQL-i serverit. Loogilise replikatsiooni rakendamisel on nüüd võimalik saata voogedastusrežiimis täitmisel olevaid tehinguid, mis võib oluliselt parandada suurte tehingute replikatsiooni jõudlust. Lisaks on optimeeritud loogilise replikatsiooni käigus saadud andmete loogiline dekodeerimine.
  • Väliste tabelite ühendamise mehhanism Foreign Data Wrapper (postgres_fdw) on lisanud päringu paralleeltöötluse toe, mis on praegu rakendatav ainult teiste PostgreSQL-i serveritega ühenduse loomisel. postgres_fdw lisab ka toe andmete lisamiseks välistele tabelitele pakkrežiimis ja võimaluse importida partitsioonidega tabeleid, täpsustades direktiivi "IMPORT FOREIGN SCHEMA".
  • VACUUM-operatsiooni (prügikoristus ja kettahoidla pakendamine) juurutamist on optimeeritud. Lisatud on hädaolukorra puhastusrežiim, mis jätab vähemolulised puhastustoimingud vahele, kui luuakse tehingu ID ümberkujundamise tingimused. B-puu vormingus indeksite töötlemisel on vähem üldkulusid. Oluliselt on kiirendatud toimingu “ANALÜÜS” täitmine, mis kogub statistikat andmebaasi toimimise kohta.
  • Lisati võimalus konfigureerida TOAST-süsteemis kasutatavat tihendusmeetodit, mis vastutab suurte andmete, näiteks tekstiplokkide või geomeetrilise teabe salvestamise eest. Lisaks pglz tihendusmeetodile saab TOAST nüüd kasutada LZ4 algoritmi.
  • DBMS-i töö jälgimise tööriistu on laiendatud. Lisatud vaated COPY-käskude (pg_stat_progress_copy), replikatsioonipesade (pg_stat_replication_slots) ja WAL-i tehingulogiga seotud tegevuste (pg_stat_wal) edenemise jälgimiseks. Lisatud on funktsioon compute_query_id, mis võimaldab erinevatel alamsüsteemidel, nagu pg_stat_activity ja EXPLAIN VERBOSE, taotlusi jälgida, määrates igale päringule kordumatu identifikaatori.
  • Päringuplaneerijasse on lisatud optimeeringuid, et parandada päringute paralleelset töötlemist ja parandada järjestikuste kirjete skaneerimise toimingute samaaegset täitmist, päringute paralleelset täitmist PL/pgSQL-is, kasutades käsku “RETURN QUERY” ja päringute paralleelset täitmist rakenduses “ VÄRSKENDA MATERIALISEERITUD vaadet”. Tsükliliste pesastatud liitmiste (liitumise) toimivuse parandamiseks on juurutatud täiendava vahemällu salvestamise tugi.
  • Täiustatud statistikat saab nüüd kasutada avaldiste optimeerimiseks ja järkjärgulist sortimist saab nüüd kasutada akna funktsioonide optimeerimiseks.
  • Salvestatud protseduurid, mis võimaldavad teil koodiplokkides tehinguid hallata, toetavad nüüd tagastusandmete määratlemist "OUT" parameetrite abil.
  • Ajatempli väärtuste ümardamiseks vastavalt määratud intervallile on lisatud funktsioon date_bin. SELECT date_bin('15 minutit', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Lisatud on SQL-standardis määratletud SEARCH ja CYCLE avaldised, et hõlbustada tsüklite järjestamist ja tuvastamist rekursiivsetes ühistabeliavaldistes (CTE). WITH RECURSIVE search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM puust t UNION ALL SELECT t.id, t.link, t.data FROM puust t, search_tree st WHERE t. id = st.link ) SEARCH DEPTH FIRST BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Psql utiliidis on täiustatud vahekaartidega käskude automaatset täitmist, käsule “\df” on lisatud funktsioonide argumentide kuvamise võimalus ning kuvatav statistika on laiendatud käsule “\dX”.
  • Kasutajatele on võimalik määrata kirjutuskaitstud või kirjutusõigused. Privileege saab määrata üksikutele tabelitele, vaadetele ja skeemidele, kasutades eelmääratletud rolle pg_read_all_data ja pg_write_all_data. ANNA pg_read_all_data kasutaja1;
  • Uutes installides kasutatakse vaikimisi parooli autentimist, kasutades md256 asemel SCRAM-SHA-5 (parameeter "password_encryption" on postgresql.confi loomisel nüüd seatud väärtusele "scram-sha-256").

Allikas: opennet.ru

Lisa kommentaar