Pas një viti zhvillimi, është publikuar dega e re stabile e DBMS PostgreSQL 14. Përditësimet për degen e re do të publikohen për pesë vjet deri në nëntor 2026.
Novitetet kryesore:
- Shtohet mbĂ«shtetje pĂ«r qasjen nĂ« tĂ« dhĂ«nat JSON pĂ«rmes shprehjeve qĂ« ngjajnĂ« me punĂ«n me listat: SELECT (â{ «postgres»: { «release»: 14 }}â::jsonb)[âpostgresâ][âreleaseâ]; SELECT * FROM test WHERE details[âattributesâ][âsizeâ] = â»medium»â;
Sindikata e ngjashme Ă«shtĂ« implementuar gjithashtu pĂ«r tĂ« dhĂ«nat nĂ« formatin çelĂ«s/vlerĂ«, tĂ« ofruara nga tipi hstore. Ky sintaks Ă«shtĂ« implementuar fillimisht duke pĂ«rdorur njĂ« framework universal, i cili nĂ« tĂ« ardhmen mund tĂ« pĂ«rdoret edhe pĂ«r tipe tĂ« tjera. Shembull pĂ«r tipin hstore: INSERT INTO mytable VALUES (âa=>b, c=>dâ); SELECT h[âaâ] FROM mytable; UPDATE mytable SET h[âcâ] = ânewâ;
- Familja e tipeve pĂ«r pĂ«rcaktimin e intervaleve Ă«shtĂ« zgjeruar me tipe tĂ« reja «multirange», tĂ« cilĂ«t lejojnĂ« tĂ« jepen lista tĂ« renditura tĂ« intervaleve tĂ« pa mbivendosur tĂ« vlerave. PĂ«r çdo tip ekzistues tĂ« range, ofrohet tipi i tij multirange, pĂ«r shembull, tipi «int4range» pĂ«rputhet me «int4multirange», ndĂ«rsa «daterange» pĂ«rputhet me «datemultirange». PĂ«rdorimi i tipeve tĂ« reja lehtĂ«son formulimin e kĂ«rkesave qĂ« manipulojnĂ« sekuenca komplekse intervalesh. SELECT â{[3,7), [8,9)}â::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
- Optimizimet janë kryer për të përmirësuar performancën e sistemeve me ngarkesë të lartë, të cilat përpunojnë një numër të madh lidhjesh. Në disa teste, është vërejtur një rritje dyfish të performancës.
- Janë rritur efikasiteti i punës së indekseve B-tree dhe është zgjidhur problemi me rritjen e indekseve gjatë përditësimit të shpeshtë të tabelave.
- Shtohet mbështetje për një mod të punës nga klienti (implementuar në nivelin e libpq) për transmetimin e pyetjeve nëpërmjet një konveji (pipeline), që lejon të shpejtojnë ndjeshëm skenarët e punës me DB, të lidhur me kryerjen e një numri të madh operacionesh të vogla shkrimi (INSERT/UPDATE/DELETE) duke dërguar pyetjen tjetër pa pritur rezultatin e atij të mëparshëm. Ky mod ndihmon gjithashtu në përshpejtimin e punës në lidhje me vonesa të mëdha në dërgimin e paketave.
- Janë zgjeruar mundësitë për konfigurime të shpërndara, që përfshijnë disa serverësh PostgreSQL. Implementimi i replikimit logjik tani ofron mundësinë për të dërguar në mënyrë stream të transaksioneve që janë në proces, e cila ndihmon në rritjen e ndjeshme të performancës së replikimit të transaksioneve të mëdha. Për më tepër, është optimizuar dekodimi logjik i të dhënave që merren gjatë procesit të replikimit logjik.
- Në mekanizmin e lidhjes me tabelat e jashtme Foreign Data Wrapper (postgres_fdw) është shtuar mbështetje për procesimin paralel të kërkesave, që aktualisht është e aplikueshme vetëm për lidhjet me servera të tjerë PostgreSQL. Në postgres_fdw është shtuar gjithashtu mbështetje për shtimin e të dhënave në tabelat e jashtme në mënyrë grumbulluese dhe mundësia për të importuar tabela të ndara përmes specifikimit të drejtimit 'IMPORT FOREIGN SCHEMA'.
- JanĂ« bĂ«rĂ« optimizime nĂ« realizimin e operacionit VACUUM (grumbullimi i mbeturinave dhe paketimi i hapĂ«sirĂ«s sĂ« diskut). ĂshtĂ« shtuar njĂ« mĂ«nyrĂ« emergjente pĂ«r pastrimin ("emergency mode"), e cila anashkalon operacionet e pastrimit jo thelbĂ«sor nĂ«se krijohen kushte pĂ«r kalimin nĂ« njĂ« cikĂ«l tĂ« dytĂ« tĂ« numrave tĂ« identifikimit tĂ« transaksioneve (transaction ID wraparound). janĂ« reduktuar kostot nĂ« pĂ«rpunimin e indekseve nĂ« formatin B-Tree. Ekzekutimi i operacionit 'ANALYZE' Ă«shtĂ« pĂ«rshpejtuar nĂ« mĂ«nyrĂ« tĂ« ndjeshme, duke mbledhur statistikĂ« pĂ«r funksionimin e DB.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« konfiguruar metodĂ«n e kompresimit tĂ« aplikuar nĂ« sistemin TOAST, i cili Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r ruajtjen e tĂ« dhĂ«nave tĂ« mĂ«dha, si blloqe teksti ose informacion gjeometrik. PĂ«rveç metodĂ«s sĂ« kompresimit pglz, tani nĂ« TOAST Ă«shtĂ« e mundur tĂ« pĂ«rdorim algoritmin LZ4.
- JanĂ« zgjeruar mjetet pĂ«r monitorimin e punĂ«s sĂ« DBMS. JanĂ« shtuar pamjet pĂ«r tĂ« ndjekur pĂ«rparimin e ekzekutimit tĂ« komandave 'COPY' (pg_stat_progress_copy), statistikave mbi slotet e replikimit (pg_stat_replication_slots) dhe aktivitetin qĂ« lidhet me logun WAL tĂ« transaksioneve (pg_stat_wal). ĂshtĂ« shtuar funksioni compute_query_id, i cili pĂ«rfshin nĂ« subsistemat e ndryshme, si pg_stat_activity dhe EXPLAIN VERBOSE, ndjekjen e pyetjeve me ndarjen e njĂ« identifikuesi unik pĂ«r secilĂ«n pyetje.
- Në planifikuesin e kërkesave janë shtuar optimizime që përmirësojnë përpunimin paralel të kërkesave dhe lejojnë rritjen e performancës për ekzekutimin e operacioneve të skanimit të rreshtave, nisjes paralel të kërkesave në PL/pgSQL me komandën «RETURN QUERY» dhe ekzekutimi paralel i kërkesave në «REFRESH MATERIALIZED VIEW». Për të rritur performancën e bashkimeve të përsëritura (join) është implementuar mbështetje për caching shtesë.
- PĂ«r optimizimin e shprehjeve tani mund tĂ« pĂ«rdoret statistika e zgjeruar, ndĂ«rsa pĂ«r optimizimin e funksioneve dritare â renditja diferenciale.
- Në procedurat e ruajtura, që lejojnë menaxhimin e transaksioneve në blloqe kodi, është implementuar mbështetje për përcaktimin e të dhënave të kthyera përmes parametrave «OUT».
- Funksioni date_bin Ă«shtĂ« shtuar pĂ«r tĂ« rrumbullakosur vlerat me tipin timestamp sipas intervalit tĂ« caktuar. SELECT date_bin(â15 minutesâ, TIMESTAMP â2020-02-11 15:44:17â, TIMESTAMP â2001-01-01â); 2020-02-11 15:30:00
- Janë shtuar shprehjet e përcaktuara në standardin SQL SEARCH dhe CYCLE, që thjeshtojnë renditjen dhe identifikimin e cikleve në shprehjet e tabelave të përgjithshme rekursive (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;
- Në utilitarin psql është përmirësuar autocompletion e komandave me tab, në komandën «\df» është shtuar mundësia për të treguar argumentet e funksioneve dhe në komandën «\dX» është zgjeruar statistika e shkarkuar.
- Ofron mundësinë për të caktuar privilegje për përdoruesit që lejojnë vetëm leximin ose vetëm shkrimin. Privilegjet mund të përcaktohen lidhur me tabela të veçanta, pamje dhe skema me rolet e paracaktuara pg_read_all_data dhe pg_write_all_data. GRANT pg_read_all_data TO user1;
- Në instalimet e reja, autentikimi me fjalëkalim me metodën SCRAM-SHA-256 është bërë përdorimi i parazgjedhur në vend të md5 (parametri «password_encryption» gjatë gjenerimit të postgresql.conf tani vendoset në 'scram-sha-256').
Burimi: opennet.ru
