Lëshimi i DBMS PostgreSQL 18

Pas një viti zhvillimi, është publikuar dega e re stabile e DBMS PostgreSQL 18. Përditësimet për degën e re do të lëshohen për një periudhë pesëvjeçare deri në nëntor 2030. Mbështetje për PostgreSQL 13.x, degën më të vjetër të mbështetur, do të ndalet më 13 nëntor.

TĂ« rejat kryesore:

  • ËshtĂ« shtuar njĂ« nĂ«nsiqĂ« pĂ«r hyrje/dalja asinkron, e cila lejon rritjen e kapacitetit tĂ« hyrje/dalja dhe elimimin e vonesave. NĂ« pĂ«rveçoh qĂ« egziston njĂ« implementim universali AIO (io_method=worker), i bazuar nĂ« ekzekutimin e disa proceseve pĂ«rpunuesish (3 Ă«shtĂ« parametrizimi i paracaktuar), nĂ« Linux mund tĂ« pĂ«rdoret ndĂ«rfaqja e hyrjes/daljes asinkron io_uring (io_method=io_uring), e mbĂ«shtetur qĂ« nga bĂ«rthama Linux 5.1. Hyrja/dalja asinkron deri tani Ă«shtĂ« angazhuar vetĂ«m pĂ«r tĂ« pĂ«rshpejtuar ekzekutimin e disa operacioneve qĂ« lidhen me leximin e tĂ« dhĂ«nave nga sistemi i skedave, si skanimi sekondar, skanimi i hartĂ«s sĂ« indekseve dhe realizimi i pastrimit (vacuum). NĂ« disa teste, pĂ«rdorimi i AIO çon nĂ« rritjen e performancĂ«s pĂ«r 2-3 herĂ«. Operacionet e shk writehen vazhdojnĂ« tĂ« kryhen nĂ« modalitetin sinkron pĂ«r tĂ« pĂ«rmbushur kĂ«rkesat ACID.
  • ËshtĂ« realizuar optimizimi 'skip scan' nĂ« indekset me shumĂ« kolona, duke lejuar qĂ« indeksi tĂ« pĂ«rdoret jo vetĂ«m pĂ«r verifikimin e kolonĂ«s sĂ« parĂ« tĂ« indekssuar dhe lidhjen e plotĂ« tĂ« kolonave, por gjithashtu pĂ«r pĂ«rpunimin e veçantĂ« tĂ« kolonave tĂ« tjera tĂ« indekssuara. PĂ«r shembull, mĂ« parĂ«, kur krijohej njĂ« indeks B-tree mbi kolonat '(status, date)', indeksi pĂ«rdorej vetĂ«m pĂ«r kĂ«rkesat qĂ« kontrollonin fushen 'status' ose tĂ« dy fushat 'status' dhe 'date', ndĂ«rsa gjatĂ« verifikimit nĂ« kĂ«rkesĂ« vetĂ«m e fushĂ«s 'date', ka pasur njĂ« skanim tĂ« pĂ«rmbajtjes sĂ« tabelĂ«s. Modaliteti 'skip scan' i lejon nĂ« disa situata tĂ« skanojnĂ« indeksi kur pĂ«rfshihet vetĂ«m fusha 'date'. Ky modalitet aplikohet vetĂ«m pĂ«r indkeset 'B-tree' kur pĂ«rdoret nĂ« kĂ«rkesĂ« me operatorin kushtor '=' mbi fushĂ«n e indekssuar, nĂ« situata kur fusha e munguar ka njĂ« numĂ«r tĂ« vogĂ«l vlerash tĂ« ndryshme (p.sh., optimizimi do tĂ« funksionojĂ« nĂ«se fusha 'status' ka disa vlera fikse).
  • JanĂ« shtuar optimizime qĂ« pĂ«rdorin mĂ« efektivisht indkeset pĂ«r kĂ«rkesat qĂ« pĂ«rmbajnĂ« struktura 'OR' dhe 'IN (...)' nĂ« blokun 'WHERE', si dhe rrisin performancĂ«n e planifikimit dhe ekzekutimit tĂ« bashkimeve tĂ« tabelave (p.sh., Ă«shtĂ« akceleruar kodi i bashkimeve tĂ« hash-it dhe lejohet pĂ«rdorimi i renditjes inkrementale gjatĂ« bashkimit tĂ« tabelave).
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r paralelizimin e ndĂ«rtimit tĂ« indekseve GIN (Indeksi i PĂ«rgjithĂ«suar i Invertuar), tĂ« cilat pĂ«rdoren pĂ«r indeksonin e vlerave tĂ« pĂ«rbĂ«ra, si pĂ«r shembuj, pĂ«r array dhe pĂ«r organizimin e kĂ«rkimeve mbi tĂ« dhĂ«na tĂ« plota tekstuale ose struktura JSON.
  • ËshtĂ« shtuar mundĂ«sia pĂ«r tĂ« krijuar pamje materializuese dhe çelĂ«za pĂ«r ndarjen e tabelave me indekse me shenjĂ«n 'unique', qĂ« nuk pĂ«rdorin strukturĂ«n B-tree.
  • ËshtĂ« pĂ«rmirĂ«suar performanca e bllokimeve pĂ«r kĂ«rkesat qĂ« punojnĂ« me njĂ« numĂ«r tĂ« madh tabelash, si dhe janĂ« bĂ«rĂ« pĂ«rmirĂ«sime nĂ« trajtimin e kĂ«rkesave ndaj tabelave tĂ« ndara, duke pĂ«rshpejtuar pĂ«rjashtimin e seksioneve tĂ« pashfrytĂ«zuara dhe operacionet e bashkimit (JOIN).
  • JanĂ« pĂ«rshpejtuar operacionet me tekst, si funksionet pĂ«r vendosjen nĂ« shkronja tĂ« mĂ«dha/tĂ« vogla. ËshtĂ« shtuar modaliteti PG_UNICODE_FAST pĂ«r pĂ«rshpejtimin e llogaritjes sĂ« pronave tĂ« locale tĂ« simboleve Unicode.
  • ËshtĂ« realizuar mundĂ«sia e ruajtjes sĂ« statistikave tĂ« planifikuesit tĂ« kĂ«rkesave pas pĂ«rditĂ«simit midis lĂ«shimeve tĂ« rĂ«ndĂ«sishme tĂ« PostgreSQL. Ky ndryshim lejon shmangien e realizimit tĂ« operacionit kĂ«rkesor 'ANALYZE' pas nisjes sĂ« versionit tĂ« ri, deri kur pĂ«rfundimi i tij shfaq njĂ« rĂ«nie tĂ« performancĂ«s sĂ« DBMS.
  • ËshtĂ« rritur performanca e utilitarit pg_upgrade, i pĂ«rdorur pĂ«r automatizimin e kalimit nĂ« lĂ«shimin e ri tĂ« rĂ«ndĂ«sishĂ«m tĂ« PostgreSQL. Optimizimet janĂ« veçanĂ«risht tĂ« dukshme kur pĂ«rditĂ«sohen DB-tĂ« qĂ« pĂ«rmbajnĂ« njĂ« numĂ«r tĂ« madh objektesh, si tabela dhe sekuenca. PĂ«r tĂ« pĂ«rshpejtuar punĂ«n e pg_upgrade, Ă«shtĂ« shtuar gjithashtu flamuri '—jobs N' pĂ«r paralelizimin e kontrolleve nĂ« N procese dhe flamuri '—swap' pĂ«r zĂ«vendĂ«simin e katalogĂ«ve me tĂ« dhĂ«na nĂ« tĂ«rĂ«si pa krijimin e lidhjeve, pa klonim dhe pa kopjimin e skedarĂ«ve.
  • Shtuar mbĂ«shtetje pĂ«r kolonat e gjeneruara virtuale, vlerat e tĂ« cilave llogariten nĂ« flow nĂ« procesin e ekzekutimit tĂ« kĂ«rkesave, pa u ruajtur nĂ« disk. NĂ« shprehjen "CREATE TABLE
" pĂ«r kolonat e gjeneruara, nĂ«se pĂ«rdoret vetĂ«m fjala kyçe "GENERATED" pa specifikuar llojin (STORED ose VIRTUAL), atĂ«herĂ« varianti i ri aplikohet si parazgjedhje nĂ« vend tĂ« realizimit tĂ« vjetĂ«r. NĂ« realizimin e vjetĂ«r, vlerat u gjeneruan gjatĂ« operacioneve "INSERT" ose "UPDATE" dhe u ruajtĂ«n nĂ« disk pĂ«r pĂ«rdorim tĂ« mĂ«vonshĂ«m. Disavantazhi i kolonave tĂ« gjeneruara virtuale Ă«shtĂ« pamundĂ«sia pĂ«r t'i pĂ«rdorur ato nĂ« indekse, ndĂ«rsa avantazhi Ă«shtĂ« mundĂ«sia pĂ«r tĂ« kryer normalizim dhe modifikimin e tĂ« dhĂ«nave nĂ« flow (tĂ« rĂ«ndĂ«sishme gjatĂ« punĂ«s me tĂ« dhĂ«nat JSON). Sa i pĂ«rket kolonave tĂ« gjeneruara tĂ« klasĂ«s klasik, nĂ« versionin e ri Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r replikimin logjik.
  • NĂ« komandat INSERT, UPDATE, DELETE dhe MERGE Ă«shtĂ« realizuar mundĂ«sia e daljes sĂ« vlerave tĂ« kaluara (OLD) dhe atyre aktuale (CURRENT) nĂ« shprehjen RETURNING. PĂ«r shembull, "UPDATE
 RETURNING WITH (OLD AS o, NEW AS n) o.*, n.*.".
  • Shtuar funksioni uuidv7() pĂ«r gjenerimin e identifikuesve unikĂ« tĂ« rastit nĂ« formatin UUIDv7. Ndryshe nga funksioni i vjetĂ«r pĂ«r gjenerimin e UUID (gen_random_uuid), i cili tani Ă«shtĂ« gjithashtu nĂ« dispozicion nĂ«n emrin uuidv4(), nĂ« UUIDv7 pĂ«rveç vlerĂ«s sĂ« rastĂ«sishme pĂ«rfshihet koha e gjenerimit. Prania e pjesĂ«ve tĂ« renditura nĂ« vlerĂ«n UUID (dymbĂ«dhjetĂ« karakteret e para - koha epokale, dhe 18 tĂ« tjerat - vlera e rastĂ«sishme) rrit efikasitetin e renditjes dhe indeksonit, çka Ă«shtĂ« e rĂ«ndĂ«sishme pĂ«r shkak se UUID zakonisht pĂ«rdoren pĂ«r çelĂ«sat primarĂ« (pĂ«r shembull, çelĂ«sat e krijuar nĂ« njĂ« kohĂ« tĂ« afĂ«rt vendosen afĂ«r njĂ«ri-tjetrit nĂ« indeks).
  • NĂ« operacionin "LIKE" Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r pĂ«rputhjet me tekstin, nĂ« tĂ« cilat pĂ«rdoren pronĂ«si tĂ« paçmuara tĂ« lokalitetit "collation", duke lejuar pĂ«rputhje me kuptimin e simboleve (pĂ«r shembull, gjatĂ« krahasimit mund tĂ« mos merret parasysh shenja e theksit). Shtuar funksioni CASEFOLD pĂ«r ndryshimin e regjistrit tĂ« simboleve nĂ« pĂ«rputhje me pronĂ«sitĂ« e lokalitetit "collation" (pĂ«r shembull, disa simbole kanĂ« mĂ« shumĂ« se dy variante tĂ« vogla ose gjatĂ« krahasimit kĂ«rkojnĂ« konvertim nĂ« regjistrin e madh, nĂ« vend tĂ« atij tĂ« vogĂ«l).
  • Shtuar mundĂ«sinĂ« e pĂ«rdorimit tĂ« kufizimeve pĂ«rkohore (temporal constraint). NĂ« vlerat "PRIMARY KEY" dhe "UNIQUE" pĂ«r tĂ« shtuar kufizime pĂ«rkohore duhet tĂ« pĂ«rdoret shprehja "WITHOUT OVERLAPS", dhe nĂ« vlerĂ«n "FOREIGN KEY" - shprehja PERIOD. PĂ«r shembull, gjatĂ« pĂ«rcaktimit tĂ« çelĂ«save primarĂ« mund tĂ« kufizohen çelĂ«sat me intervale tĂ« mbivendosura tĂ« kohĂ«s.
  • Shtuar komandĂ«n "CREATE FOREIGN TABLE 
 LIKE command" pĂ«r krijimin e njĂ« skeme tĂ« njĂ« tabele tĂ« jashtme mbi bazĂ«n e pĂ«rcaktimit tĂ« njĂ« tabele lokale.
  • Shtuar mbĂ«shtetje pĂ«r lidhjen me DBMS, duke pĂ«rdorur autentifikimin mbi bazĂ«n e OAUTH 2.0 me pĂ«rdorimin e tokenit tĂ« aksesit nĂ« vend tĂ« fjalĂ«kalimit. PĂ«rdorimi i OAUTH lejon qĂ« tĂ« mos ruhen fjalĂ«kalimet nĂ« DB, por tĂ« identifikohen pĂ«rdoruesit pĂ«rmes shĂ«rbimeve tĂ« jashtme, si dhe tĂ« pĂ«rdoren mundĂ«si tĂ« tilla si autentifikimi me dy faktorĂ« dhe pika e vetme hyrjeje (SSO).
  • Shtuar funksioni ssl_tls13_ciphers(), pĂ«rmes tĂ« cilit mund tĂ« pĂ«rcaktohet lista e algoritmeve tĂ« kodimit tĂ« lejuar gjatĂ« lidhjes me pĂ«rdorimin e protokollit TLSv1.3.
  • NĂ« kategorinĂ« e mbĂ«shtetjeve tĂ« vjetra dhe tĂ« planifikuara pĂ«r t'u hequr Ă«shtĂ« kaluar mbĂ«shtetjes pĂ«r autentifikimin duke pĂ«rdorur algoritmin md5 pĂ«r heshimin e fjalĂ«kalimeve. NĂ« vend tĂ« md5, rekomandohet pĂ«rdorimi i algoritmit SCRAM (SCRAM-SHA-256), i cili u shfaq nĂ« PostgreSQL 10. Po ashtu, Ă«shtĂ« e shĂ«nuar realizimi i mbĂ«shtetjes pĂ«r kalimin e autentifikimit mbi bazĂ«n e SCRAM gjatĂ« lidhjes pĂ«rmes postgres_fdw dhe dblink me serverĂ« tĂ« jashtĂ«m PostgreSQL.
  • GjatĂ« ekzekutimit tĂ« operacionit "EXPLAIN ANALYZE", Ă«shtĂ« siguruar dalja e informacionit mbi numrin e operacioneve tĂ« kĂ«rkimit nĂ« indekse gjatĂ« skanimit tĂ« indeksit dhe numrin e kĂ«rkesave nĂ« buffer gjatĂ« ekzekutimit tĂ« kĂ«rkesĂ«s. NĂ« daljen "EXPLAIN ANALYZE VERBOSE" Ă«shtĂ« pĂ«rfshirĂ« statistika mbi CPU, WAL-ditarin dhe intensitetin e operacioneve tĂ« leximit. NĂ« tabelĂ«n pg_stat_all_tables janĂ« shtuar tĂ« dhĂ«na mbi kohĂ«n e shpenzuar pĂ«r operacionin VACUUM dhe analizĂ«n e tabelave. ËshtĂ« ofruar statistika mbi intensitetin e hyrjes/daljes dhe ngarkesĂ«n nĂ« WAL-ditar sipas lidhjeve tĂ« veçanta. NĂ« pg_stat_subscription_stats dhe log-et Ă«shtĂ« shtuar informacion me diagnostikĂ« pĂ«r konfliktet gjatĂ« ekzekutimit tĂ« operacioneve tĂ« shkruara gjatĂ« replikimit logjik.
  • NĂ« instalimet e reja Ă«shtĂ« aktivizuar si parazgjedhje pĂ«rdorimi i kontrolleve pĂ«r tĂ« verifikuar integritetin e tĂ« dhĂ«nave tĂ« ruajtura. PĂ«r tĂ« anuluar kĂ«tĂ« sjellje gjatĂ« ekzekutimit tĂ« initdb, duhet tĂ« pĂ«rdoret opsioni "—no-data-checksums".
  • NĂ« utilitarin pg_createsubscriber Ă«shtĂ« shtuar flagu "—all" pĂ«r krijimin e replikave logjike me njĂ« komando menjĂ«herĂ« pĂ«r tĂ« gjitha DB.
  • Versioni e reviduar (3.2) e protokollit, i pĂ«rdorur pĂ«r ndĂ«rveprimin e mjeteve tĂ« jashtme me DBMS, Ă«shtĂ« implementuar nĂ« bibliotekĂ«n libpq. Versioni i kaluar i protokollit u lĂ«shua nĂ« PostgreSQL 7.4 (2003). NĂ« bibliotekĂ«n libpq vazhdon tĂ« pĂ«rdoret versioni 3.0 si default.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster