Pas një viti zhvillimi, është publikuar një degë e re e stabilizuar e DBMS PostgreSQL 14. Përditësimet për këtë degë do të dalin gjatë pesë viteve të ardhshme deri në nëntor 2026.
TĂ« rejat kryesore:
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r aksesin nĂ« tĂ« dhĂ«na JSON pĂ«rmes shprehjeve qĂ« ngjajnĂ« me punĂ«n me array: SELECT (â{ "postgres": { "release": 14 }}â::jsonb)[âpostgresâ][âreleaseâ]; SELECT * FROM test WHERE details[âattributesâ][âsizeâ] = â"medium"â;
Sintaksa e ngjashme Ă«shtĂ« realizuar gjithashtu pĂ«r tĂ« dhĂ«nat nĂ« formatin çelĂ«s/vlera, tĂ« siguruara nga tipi hstore. NjĂ« sintaksĂ« e tillĂ« Ă«shtĂ« fillimisht realizuar duke pĂ«rdorur njĂ« kornizĂ« universale, e cila nĂ« tĂ« ardhmen mund tĂ« pĂ«rdoret gjithashtu pĂ«r tipe tĂ« tjera. Shembuj 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", qĂ« lejojnĂ« pĂ«rcaktimin e listave tĂ« renditura tĂ« intervaleve tĂ« papĂ«rputhshme tĂ« vlerave. NĂ« pĂ«rputhje me çdo tip ekzistues range, Ă«shtĂ« propozuar tipi pĂ«rkatĂ«s multirange, pĂ«r shembuj, tipi "int4range" pĂ«rputhet me "int4multirange", ndĂ«rsa "daterange" me "datemultirange". PĂ«rdorimi i tipeve tĂ« reja thjeshton formimin e pyetjeve qĂ« manipulojnĂ« me sekuenca komplekse intervalesh. SELECT â{[3,7), [8,9)}â::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
- Janë bërë optimizime për të rritur performancën e sistemeve me ngarkesë të lartë që trajtojnë një numër të madh lidhjesh. Në disa teste është vërejtur një rritje dyfish të performancës.
- ĂshtĂ« rritur efikasiteti i indekseve B-tree dhe Ă«shtĂ« zgjidhur problemi i zgjerimit tĂ« indekseve gjatĂ« pĂ«rditĂ«simeve tĂ« shpeshta tĂ« tabelave.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r regjimin e transmetimit nĂ« anĂ«n e klientit (implementuar nĂ« nivelin libpq) tĂ« regjimit tĂ« tubimit (pipeline) tĂ« kĂ«rkesave, i cili lejon tĂ« pĂ«rshpejtohet nĂ« mĂ«nyrĂ« tĂ« dukshme skenarĂ«t e punĂ«s me DB, tĂ« lidhur me realizimin e njĂ« numri tĂ« madh operacioneve tĂ« vogla shkruese (INSERT/UPDATE/DELETE) duke dĂ«rguar kĂ«rkesĂ«n e ardhshme pa pritur rezultatin e asaj tĂ« kaluarĂ«s. Ky regjim gjithashtu ndihmon nĂ« pĂ«rshpejtimin e punĂ«s nĂ« lidhjet me vonesa tĂ« mĂ«dha tĂ« dorĂ«zimit tĂ« pakove.
- Janë zgjeruar mundësitë për konfigurime të shpërndara që përfshijnë disa servera PostgreSQL. Në realizimin e replikimit logjik është shtuar mundësia e dërgimit në mod të rrymin të transaksioneve, të cilat janë në proces ekzekutimi, çka lejon të rritur ndjeshëm performancën e replikimit të transaksioneve të mëdha. Për më tepër, është optimizuar dekodimi logjik i të dhënave që vijnë gjatë procesit të replikimit logjik.
- NĂ« mekanizmin e lidhjes sĂ« tabelave tĂ« jashtme Foreign Data Wrapper (postgres_fdw) Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rpunimin paralel tĂ« kĂ«rkesave, i cili pĂ«r momentin Ă«shtĂ« i aplikueshĂ«m vetĂ«m kur lidhet 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Ă« mod tĂ« paketave dhe mundĂ«sia e importimit tĂ« tabelave tĂ« ndara pĂ«rmes specifikimit tĂ« direktivĂ«s âIMPORT FOREIGN SCHEMAâ.
- JanĂ« bĂ«rĂ« optimizime nĂ« realizimin e operacionit VACUUM (mbledhja e mbeturinave dhe paketimi i ruajtjes nĂ« disk). ĂshtĂ« shtuar njĂ« mod emergjence pastrimi, qĂ« anashkalon operacionet e pastrimit tĂ« parĂ«ndĂ«sishme nĂ«se krijohen kushtet pĂ«r tĂ« kaluar nĂ« rrethin e dytĂ« tĂ« numrave tĂ« identifikimit tĂ« transaksioneve (transaction ID wraparound). JanĂ« ulur kostot operative gjatĂ« pĂ«rpunimit tĂ« indekseve nĂ« formatin B-Tree. ĂshtĂ« pĂ«rshpejtuar ndjeshĂ«m kryerja e operacionit âANALYZEâ, qĂ« mbledh statistika mbi punĂ«n e DB.
- ĂshtĂ« shtuar mundĂ«sia e konfigurimit tĂ« metodĂ«s sĂ« kompresimit, tĂ« aplikuar nĂ« sistemin TOAST, i cili Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r ruajtjen e tĂ« dhĂ«nave tĂ« mĂ«dha, si blloqet e tekstit ose informacionin gjeometrik. PĂ«rveç metodĂ«s sĂ« kompresimit pglz, nĂ« TOAST tani mund tĂ« pĂ«rdoret algoritmi LZ4.
- JanĂ« zgjeruar mjetet pĂ«r monitorimin e punĂ«s sĂ« DBMS. JanĂ« shtuar pamjet pĂ«r ndjekjen e pĂ«rparimeve tĂ« ekzekutimit tĂ« komandeve âCOPYâ (pg_stat_progress_copy), statistikat mbi slotet e replikimit (pg_stat_replication_slots) dhe aktivitetet lidhur me logun WAL tĂ« transaksioneve (pg_stat_wal). ĂshtĂ« shtuar funksioni compute_query_id, qĂ« pĂ«rfshin nĂ« sisteme tĂ« ndryshme, si pg_stat_activity dhe EXPLAIN VERBOSE, ndjekjen e kĂ«rkesave me caktimin e njĂ« identifikuesi unik pĂ«r çdo kĂ«rkesĂ«.
- JanĂ« shtuar optimizime nĂ« planifikuesin e kĂ«rkesave qĂ« pĂ«rmirĂ«sojnĂ« pĂ«rpunimin paralel tĂ« kĂ«rkesave dhe lejojnĂ« rritjen e performancĂ«s sĂ« realizimit tĂ« operacioneve tĂ« skanimit tĂ« sekuencave, ekzekutimin paralel tĂ« kĂ«rkesave nĂ« PL/pgSQL pĂ«rmes komandĂ«s âRETURN QUERYâ dhe ekzekutimin paralel tĂ« kĂ«rkesave nĂ« âREFRESH MATERIALIZED VIEWâ. PĂ«r tĂ« rritur performancĂ«n e bashkĂ«ngjitjeve ciklike tĂ« pĂ«rsĂ«ritura Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r memorizimin e mĂ«tejshĂ«m.
- PĂ«r optimizimin e shprehjeve tani mund tĂ« pĂ«rdoret statistika e avancuar, dhe pĂ«r optimizimin e funksioneve dritare â renditja inkrementale.
- Në procedurat e ruajtura, që lejojnë menaxhimin e transaksioneve në blloqe kodi, është zbatuar mbështetje për përcaktimin e të dhënave të kthyera duke përdorur parametrat "OUT".
- Shtuar funksioni date_bin për të rrumbullaksuar vlerat me tipin timestamp në përputhje me intervalin e caktuar. SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
- Shtuar shprehjet e përcaktuara në standardin SQL SEARCH dhe CYCLE, që lehtësojnë renditjen dhe identifikimin e cikleve në shprehjet tabelore rekurzive (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 autokompletimi i komandave me tab, në komandën "\df" është shtuar mundësia e shfaqjes së argumenteve të funksioneve, dhe në komandën "\dX" është zgjeruar statistika e shfaqur.
- Ofruar mundësia për të caktuar privilegje për përdoruesit që lejojnë vetëm lexim ose vetëm shkruajtur. Privilegjet mund të përcaktohen në lidhje me tabela, pamje dhe skema të veçanta duke përdorur rolet e paracaktuara pg_read_all_data dhe pg_write_all_data. GRANT pg_read_all_data TO user1;
- Në instalimet e reja është garantuar përdorimi i autentikimit me fjalëkalim duke përdorur metodën SCRAM-SHA-256 në vend të md5 (parametri "password_encryption" gjatë gjenerimit të postgresql.conf tani vendoset në vlerën 'scram-sha-256').
Burimi: opennet.ru
