PostgreSQL 14 DBMS izlaidums

Pēc gada izstrādes ir publicēta jauna stabila PostgreSQL 14 datubāzu sistēmas versija. Atjauninājumi jaunajai versijai tiks izdoti piecus gadus līdz 2026. gada novembrim.

Galvenās jauninājumi:

  • Pievienota atbalsta piekļuve JSON datiem, izmantojot izteiksmes, kas atgādina darbu ar masīviem: SELECT (‘{ "postgres": { "release": 14 }}’::jsonb)[‘postgres’][‘release’]; SELECT * FROM test WHERE details[‘attributes’][‘size’] = ‘"medium"‘;

    Tāds pats sintakse ir īstenota arī nozīmju pāra datiem, ko nodrošina hstore tips. Šāda sintakse sākotnēji tika īstenota, izmantojot universālu ietvaru, kuru nākotnē varēs izmantot arī citiem tipiem. Hstore tipa piemērs: INSERT INTO mytable VALUES (‘a=>b, c=>d’); SELECT h[‘a’] FROM mytable; UPDATE mytable SET h[‘c’] = ‘new’;

  • Tipu ģimene diapazonu definēšanai ir paplašināta ar jaunajiem “multirange” tipiem, kas ļauj definēt secīgus nepārklājošos vērtību diapazonus. Katram esošajam range tipam piedāvāts savs multirange variants, piemēram, int4range atbilst int4multirange, bet daterange — datemultirange. Jauno tipu izmantošana atvieglo pieprasījumu veidošanu, kas strādā ar sarežģītām diapazonu secībām. SELECT ‘{[3,7), [8,9)}’::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Ieviestas optimizācijas, lai uzlabotu veiktspēju augstas noslodzes sistēmām, kas apstrādā lielu savienojumu skaitu. Dažos testos novērots divkāršs veiktspējas pieaugums.
  • Uzlabota B-tree indeksu darba efektivitāte un atrisināta problēma ar indeksu pieaugumu biežas tabulu atjaunošanas gadījumā.
  • Pievienots atbalsts klienta pusē strādājošam (īstenots libpq līmenī) konveijera režīmam, kas ievērojami paātrina datubāzes scenārijus, kas saistīti ar lielu skaitu sīku ieraksta operāciju (INSERT/UPDATE/DELETE), sūtot nākamo pieprasījumu, nepagaidījis iepriekšējā rezultātu. Šis režīms arī palīdz paātrināt darbu ar lielām paketes aizkavēm.
  • Paplašinātas iespējas izplatītajām konfigurācijām, kas ietver vairākus serveriem PostgreSQL. Loģiskās replikācijas realizācijā ir ieviesta iespēja sūtīt izpildē esošās transakcijas straumē, kas būtiski uzlabo lielu transakciju replikācijas veiktspēju. Turklāt ir optimizēta loģiskā datu dekodēšana, kas notiek loģiskās replikācijas procesā.
  • Ārējo tabulu piekļūšanas mehānismā Foreign Data Wrapper (postgres_fdw) ir pievienota atbalsta paralēlai vaicājumu apstrādei, kas pagaidām ir piemērojama tikai, savienojoties ar citiem PostgreSQL serveriem. Postgres_fdw ir arī pievienots atbalsts datu pievienošanai ārējām tabulām partiju režīmā un iespēja importēt sekcijām sadalītas tabulas, norādot direktīvu „IMPORT FOREIGN SCHEMA”.
  • Ir veiktas optimizācijas VACUUM operācijas (atkritumu kolekcija un diska krātuves iesaiņošana) realizācijā. Ir pievienots avārijas režīms tīrīšanai („emergency mode”), kas ignorē nenozīmīgas tīrīšanas operācijas, ja tiek radīti apstākļi, kas izraisa otru tranzakciju identifikatoru numuru pamatu (transaction ID wraparound). Ir samazināti izdevumi indeksu apstrādē B-Tree formātā. Significantly paātrināta „ANALYZE” operācijas izpilde, kas apkopo Datu bāzes statistiku.
  • Ir pievienota iespēja konfigurēt saspiešanas metodi, kas tiek izmantota TOAST sistēmā, atbildīgā par lielu datu, piemēram, teksta bloku vai ģeometriskās informācijas, uzglabāšanu. Papildus pglz saspiešanas metodei TOAST tagad var izmantot LZ4 algoritmu.
  • Ir paplašinātas līdzekļi, lai uzraudzītu datu bāzes darbību. Ir pievienoti skati, lai sekotu „COPY” komandu izpildes progresam (pg_stat_progress_copy), statistikai par replikācijas slotiem (pg_stat_replication_slots) un aktivitāti, kas saistīta ar WAL transakciju žurnālus (pg_stat_wal). Ir pievienota funkcija compute_query_id, kas ietver dažādās apakšsistēmās, piemēram, pg_stat_activity un EXPLAIN VERBOSE, vaicājumu uzraudzību ar unikāla identifikatora piešķiršanu katram vaicājumam.
  • Pieteikumu plānotājā ir pievienoti uzlabojumi, kas uzlabo pieprasījumu paralēlu apstrādi un ļauj paaugstināt veiktspēju, vienlaikus izpildot secīgu ierakstu skenēšanas operācijas, paralēli izpildot pieprasījumus PL/pgSQL, izmantojot komandu «RETURN QUERY», un paralēli izpildot pieprasījumus «REFRESH MATERIALIZED VIEW». Lai uzlabotu ciklisku apvienojumu (join) veiktspēju, ir ieviesta papildu kešošanas atbalsts.
  • Izteiksmju optimizācijai tagad var izmantot paplašināto statistiku, bet logu funkciju optimizācijai — inkrementālo sorts.
  • Saglabāto procedūru izpildē, kas ļauj pārvaldīt darījumus kodu blokos, ir ieviests atbalsts, lai noteiktu atgriezeniskos datus, izmantojot «OUT» parametrus.
  • Ir pievienota date_bin funkcija, lai noapaļotu timestamp tipa vērtības atbilstoši noteiktajam intervālam. SELECT date_bin(’15 minutes’, TIMESTAMP ‘2020-02-11 15:44:17’, TIMESTAMP ‘2001-01-01’); 2020-02-11 15:30:00
  • Ir pievienoti SQL standartā noteikti izteikumi SEARCH un CYCLE, kas vienkāršo kārtošanu un loku atklāšanu rekursīvos vispārējos tabulu izteikumos (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;
  • PsqL utilītē ir uzlabota automātiskā komandu pabeigšana ar taustiņu tabulācija, komandā «\df» ir pievienota iespēja rādīt funkciju argumentus, bet komandā «\dX» ir paplašināta izvades statistika.
  • Iespējams piešķirt lietotājiem privilēģijas, kas ļauj tikai lasīt vai tikai rakstīt. Privilēģijas var piešķirt attiecībā uz atsevišķām tabulām, skatījumiem un shēmām, izmantojot iepriekš noteiktās lomas pg_read_all_data un pg_write_all_data. GRANT pg_read_all_data TO user1;
  • Jaunās instalācijās pēc noklusējuma ir nodrošināta paroles autentifikācija, izmantojot SCRAM-SHA-256 metodi, nevis md5 (parametrs «password_encryption» tagad tiek iestatīts uz ‘scram-sha-256’ ģenerējot postgresql.conf).

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster