PostgreSQL 14 DBMS leidimas

Po metų kūrimo buvo paskelbta nauja stabili PostgreSQL 14 DBVS atšaka. Naujos šakos atnaujinimai bus išleisti per penkerius metus iki 2026 m. lapkričio mėn.

Pagrindinės naujovės:

  • Pridėta prieiga prie JSON duomenų naudojant masyvo išraiškas: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"vidutinis"';

    Panaši sintaksė įdiegta rakto / vertės duomenims, kuriuos pateikia hstore tipas. Ši sintaksė iš pradžių buvo įdiegta naudojant universalią sistemą, kuri ateityje gali būti naudojama kitiems tipams. hstore tipo pavyzdys: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable; ATNAUJINTI mytable SET h['c'] = 'naujas';

  • Diapazonų apibrėžimo tipų šeima buvo išplėsta naujais „kelių diapazonų“ tipais, kurie leidžia nurodyti sutvarkytus nesutampančių verčių diapazonų sąrašus. Be kiekvieno esamo diapazono tipo, siūlomas atskiras kelių diapazonų tipas, pavyzdžiui, tipas „int4range“ atitinka „int4multirange“, o tipas „daterange“ – „datemultirange“. Naujų tipų naudojimas supaprastina užklausų, kurios manipuliuoja sudėtingomis diapazonų sekomis, kūrimą. PASIRINKITE '{[3,7), [8,9)}'::int4multirange; SELECT skaičių diapazonas(skaičių diapazonas(1.0, 14.0), skaičių diapazonas(20.0, 25.0));
  • Buvo atliktas optimizavimas, siekiant pagerinti didelės apkrovos sistemų, apdorojančių daug jungčių, našumą. Kai kurių testų metu pastebimas dvigubas našumo padidėjimas.
  • Patobulintas B-medžio indeksų efektyvumas ir išspręsta indekso augimo problema, kai lentelės dažnai atnaujinamos.
  • Pridėtas kliento pusės (įdiegtas libpq lygiu) užklausų perdavimo vamzdyno režimo palaikymas, kuris leidžia žymiai pagreitinti duomenų bazės scenarijus, susijusius su daugybe mažų rašymo operacijų (INSERT/UPDATE/DELETE), siunčiant kitą užklausą nelaukiant ankstesnio rezultato. Šis režimas taip pat padeda pagreitinti ryšį su ilgais paketų pristatymo vėlavimais.
  • Patobulintos paskirstytų konfigūracijų, apimančių kelis PostgreSQL serverius, galimybės. Įdiegus loginį replikavimą, dabar tampa įmanoma siųsti vykdomas operacijas srautinio perdavimo režimu, o tai gali žymiai pagerinti didelių operacijų replikacijos našumą. Be to, buvo optimizuotas loginis duomenų, gautų loginio replikacijos metu, dekodavimas.
  • Išorinių lentelių prijungimo mechanizmas „Foreign Data Wrapper“ (postgres_fdw) papildė lygiagrečio užklausų apdorojimo palaikymą, kuris šiuo metu taikomas tik jungiantis prie kitų PostgreSQL serverių. postgres_fdw taip pat prideda duomenų įtraukimo į išorines lenteles paketiniu režimu palaikymą ir galimybę importuoti skaidytas lenteles, nurodant direktyvą „IMPORTUOTI UŽSIENIO SCHEMĄ“.
  • Optimizuotas VACUUM operacijos (šiukšlių surinkimas ir disko saugyklos pakavimas) įgyvendinimas. Pridėtas avarinio valymo režimas, kuris praleidžia neesmines valymo operacijas, jei sukuriamos operacijos ID aplinkybės. Sumažėjusios papildomos išlaidos apdorojant indeksus B-Tree formatu. Ženkliai paspartėjo operacijos „ANALIZĖ“, renkančios statistinius duomenis apie duomenų bazės veikimą, vykdymas.
  • Pridėta galimybė konfigūruoti TOAST sistemoje naudojamą suspaudimo metodą, kuris yra atsakingas už didelių duomenų, pavyzdžiui, teksto ar geometrinės informacijos blokų, saugojimą. Be pglz glaudinimo metodo, TOAST dabar gali naudoti LZ4 algoritmą.
  • Išplėstos DBVS veikimo stebėjimo priemonės. Pridėtas rodinys, skirtas stebėti COPY komandų eigą (pg_stat_progress_copy), statistiką apie replikacijos lizdus (pg_stat_replication_slots) ir veiklą, susijusią su WAL operacijų žurnalu (pg_stat_wal). Pridėta funkcija compute_query_id, kuri leidžia įvairioms posistemėms, tokioms kaip pg_stat_activity ir EXPLAIN VERBOSE, sekti užklausas, kiekvienai užklausai priskiriant unikalų identifikatorių.
  • Užklausų planuotojas papildė optimizavimus, kad pagerintų lygiagretų užklausų apdorojimą ir pagerintų nuoseklių įrašų nuskaitymo operacijų vienu metu vykdymą, lygiagretų užklausų vykdymą PL/pgSQL naudojant komandą „RETURN QUERY“ ir lygiagretų užklausų vykdymą „ ATNAUJINTI MATERIALIZUOTĄ VAIZDĄ“. Siekiant pagerinti ciklinių įdėtųjų sujungimų (prisijungimo) našumą, buvo įdiegtas papildomos talpyklos palaikymas.
  • Išplėstinė statistika dabar gali būti naudojama išraiškoms optimizuoti, o laipsniškas rūšiavimas dabar gali būti naudojamas langų funkcijoms optimizuoti.
  • Išsaugotos procedūros, leidžiančios valdyti operacijas kodo blokuose, dabar palaiko grąžinimo duomenų apibrėžimą naudojant „OUT“ parametrus.
  • Pridėta data_bin funkcija suapvalinti laiko žymos reikšmes pagal nurodytą intervalą. SELECT date_bin('15 minučių', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Pridėtos SEARCH ir CYCLE išraiškos, apibrėžtos SQL standarte, kad būtų lengviau užsakyti ir identifikuoti ciklus rekursinėse bendrosiose lentelės išraiškose (CTE). SU REKURSIVU paieškos_medžiu(id, nuoroda, duomenys) AS ( SELECT t.id, t.link, t.data FROM FROM t UNION ALL SELECT t.id, t.link, t.data FROM FROM t, search_tree st WHERE t. id = st.link ) SEARCH DEPTH FIRST BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Psql programoje patobulintas automatinis komandų su skirtukais užbaigimas, prie komandos „\df“ pridėta galimybė rodyti funkcijų argumentus, o rodoma statistika išplėsta iki komandos „\dX“.
  • Vartotojams galima priskirti tik skaitymo arba tik rašymo teises. Privilegijas galima nustatyti atskirose lentelėse, rodiniuose ir schemose naudojant iš anksto nustatytus vaidmenis pg_read_all_data ir pg_write_all_data. SUTEIKTI pg_read_all_data vartotojui1;
  • Naujuose įrenginiuose numatytasis slaptažodžio autentifikavimas naudojant SCRAM-SHA-256, o ne md5 (parametras "password_encryption" generuojant postgresql.conf dabar nustatytas į "scram-sha-256").

Šaltinis: opennet.ru

Добавить комментарий