Pas një viti zhvillimi, është publikuar dega e re stabile e DBMS PostgreSQL 17. Përditësimet për degën e re do të publikohen për pesë vjet deri në nëntor 2029. Mbështetja për PostgreSQL 12.x, degën më të vjetër përkatëse, do të përfundojë më 14 nëntor.
Novitetet kryesore:
- Gjatë kryerjes së operacionit VACUUM (mbledhja e mbeturinave, pastrimi dhe paketimi i ruajtjes së disks) është angazhuar një strukturë të dhënash e re që konsumon deri në 20 herë më pak memorie. Kalimi në strukturën e re ka lejuar të shpejtojë kryerjen e operacioneve VACUUM dhe të zvogëlojë konsumimin e burimeve të ndara.
- Ka vazhduar optimizimi i performancĂ«s sĂ« hyrjes/daljes. FalĂ« pĂ«rmirĂ«simit tĂ« kodit pĂ«r pĂ«rpunimin e logut tĂ« shkruar tĂ« vonuar WAL, Ă«shtĂ« arritur tĂ« dyfishohet kapaciteti i operacioneve tĂ« shkruar nĂ« sisteme me njĂ« numĂ«r tĂ« madh kĂ«rkesash qĂ« ekzekutohen njĂ«kohĂ«sisht. ĂshtĂ« propozuar njĂ« ndĂ«rfaqe e re pĂ«r hyrje/dalje tĂ« rrjedhshĂ«m qĂ« ka lejuar rritjen e shpejtĂ«sisĂ« sĂ« skanimit tĂ« tĂ« dhĂ«nave nĂ« tabela dhe Ă«shtĂ« pĂ«rshpejtuar pĂ«rditĂ«simi i statistikave pĂ«r planifikuesin e kĂ«rkesave pas ekzekutimit tĂ« operacionit ANALYZE.
- Ka rritur performancĂ«n e kĂ«rkesave me shprehjen "IN", nĂ«se pĂ«rdoren indekset mbi bazĂ«n e strukturĂ«s B-tree. ĂshtĂ« realizuar mundĂ«sia e ndĂ«rtimit paralel tĂ« indekseve BRIN (Block Range Index). NĂ« planifikuesin e kĂ«rkesave janĂ« optimizuar kontrollat "NOT NULL" dhe Ă«shtĂ« pĂ«rshpejtuar pĂ«rpunimi i shprehjeve tĂ« tavolinave tĂ« pĂ«rgjithshme (Common Table Expression, CTE) tĂ« pĂ«rcaktuara me komandĂ«n SQL "WITH". ĂshtĂ« siguruar pĂ«rdorimi i instrukcioneve tĂ« procesorĂ«ve vektorĂ« (SIMD) pĂ«r tĂ« pĂ«rshpejtuar disa llogaritje, pĂ«r shembull, pĂ«rshpejtimi i funksionit bit_count Ă«shtĂ« realizuar duke pĂ«rdorur instrukcione AVX-512.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r mundĂ«si tĂ« reja pĂ«r punĂ«n me formatin JSON, tĂ« pĂ«rcaktuara nĂ« standardin SQL/JSON. ĂshtĂ« shtuar funksioni JSON-TABLE pĂ«r tĂ« transformuar tĂ« dhĂ«nat nga formati JSON nĂ« tabela tĂ« zakonshme PostgreSQL, si dhe operatorĂ« tĂ« rinj jsonpath pĂ«r tĂ« transformuar tĂ« dhĂ«nat JSON nĂ« llojet e tĂ« dhĂ«nave native pĂ«r PostgreSQL. JanĂ« propozuar funksione tĂ« reja pĂ«r krijimin (JSON, JSON_SCALAR dhe JSON_SERIALIZE) dhe kĂ«rkimin (JSON_EXISTS, JSON_QUERY dhe JSON_VALUE) e tĂ« dhĂ«nave nĂ« formatin JSON.
- AftĂ«sitĂ« e komandĂ«s SQL «MERGE» janĂ« zgjeruar, duke lejuar krijimin e shprehjeve SQL tĂ« kushtĂ«zuara, qĂ« bashkojnĂ« nĂ« njĂ« shprehje operacionet INSERT, UPDATE dhe DELETE. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r shprehjen RETURNING, e cila lejon llogaritjen dhe kthimin e vlerave nĂ« bazĂ« tĂ« rreshtave tĂ« shtuar, tĂ« pĂ«rditĂ«suar ose tĂ« fshire. ĂshtĂ« realizuar mbĂ«shtetje pĂ«r pĂ«rditĂ«simin e pamjeve.
- Aftësitë e ngarkimit dhe eksportit të të dhënave në modin me grup janë zgjeruar. Në komandën COPY, shpejtësia e eksportit të rreshtave të mëdhenj është dyfishuar, është optimizuar kopjimi kur përputhen kodet burimore dhe ato të destinacionit, si dhe është shtuar opsioni ON_ERROR, që lejon vazhdimin e imaportit pas gabimeve gjatë futjes së të dhënave.
- Për tabelat e seksionuara, është shtuar mundësia e përdorimit të kolonave me identifikues unik dhe mbështetje për teknikën e optimizimit të pyetjeve «Constraint exclusion».
- Në mekanizmin e lidhjes së tabelave të jashtme Foreign Data Wrapper (postgres_fdw) është realizuar mundësia e transmetimit në jashtë server nënpyetjeve «EXISTS» dhe «IN.»
- ĂshtĂ« realizuar njĂ« motor i integruar i pavarur nga platforma pĂ«r trajtimin e pronave tĂ« lokalit «Collation», qĂ« pĂ«rdoren pĂ«r tĂ« pĂ«rcaktuar rregullat e renditjes dhe metodave tĂ« shkallĂ«zimit me konsideratĂ« pĂ«r kuptimin e simboleve (pĂ«r shembull, gjatĂ« renditjes sĂ« vlerave numerike merren parasysh prania e minusit dhe pikĂ«s para numrit dhe format e ndryshme tĂ« shkrimit, ndĂ«rsa gjatĂ« krahasimit nuk merret parasysh rasti i simboleve dhe prania e shenjĂ«s sĂ« theksit). Ky motor i ri garanton njĂ« sjellje tĂ« njĂ«trajtshme gjatĂ« renditjes sĂ« rezultateve tĂ« pyetjeve, qĂ« nuk varet nga platforma mbi tĂ« cilĂ«n ekzekutohet PostgreSQL.
- NĂ« mekanizmin e replikimit logjik, qĂ« lejon transmetimin nĂ« njĂ« server tjetĂ«r tĂ« ndryshimeve tĂ« bĂ«ra nĂ« DB gjatĂ« shtimit, fshirjes ose pĂ«rditĂ«simit tĂ« tĂ« dhĂ«nave, Ă«shtĂ« thjeshtĂ«suar procesi i pĂ«rditĂ«simit tĂ« SGBD-sĂ«. NĂ«se mĂ« parĂ« duhej tĂ« fshiheshin slotet e replikimit logjik dhe tĂ« sinkronizoheshin tĂ« dhĂ«nat pĂ«rsĂ«ri gjatĂ« kalimit nĂ« njĂ« version tĂ« ri tĂ« rĂ«ndĂ«sishĂ«m, tani mund tĂ« bĂ«het pa fshirjen e slotĂ«ve. PĂ«r konfigurimet me qĂ«ndrueshmĂ«ri tĂ« lartĂ« Ă«shtĂ« realizuar mundĂ«sia e menaxhimit tĂ« kalimit nĂ« serverin rezervĂ« (failover) pĂ«r replikimin logjik. ĂshtĂ« shtuar njĂ« utilitar i ri pg_createsubscriber pĂ«r tĂ« shndĂ«rruar njĂ« replikĂ« fizike nĂ« njĂ« replikĂ« tĂ« re logjike.
- Një opsion i ri «sslnegotiation» është shtuar për negociimin e drejtpërdrejtë të lidhjeve të sigurta TLS duke përdorur zgjerimin TLS ALPN.
- Rol i paracaktuar pg_maintain është realizuar, duke i dhënë përdoruesit të drejtat për të kryer operacione në lidhje me mirëmbajtjen e DBMS.
- NĂ« utilitarin pg_basebackup, i pĂ«rdorur pĂ«r krijimin e kopjeve rezervĂ« tĂ« DB, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r kopje rezervĂ« inkrementale. PĂ«r rikonstruktimin e njĂ« kopjeje rezervĂ« tĂ« plotĂ« nga njĂ« grup kopjish inkrementale, Ă«shtĂ« propozuar njĂ« utilitar i ri pg_combinebackup. NjĂ« opsion «âfilter» Ă«shtĂ« shtuar nĂ« utilitarin pg_dump pĂ«r tĂ« zgjedhur objektet qĂ« do tĂ« pĂ«rfshihen nĂ« dump.
- Për analizimin e pyetjeve duke përdorur komandën SQL «EXPLAIN», është realizuar dalja e kohës së kaluar në leximin dhe shkruarin e blloqeve lokale gjatë hyrjes/daljes. Në komandën «EXPLAIN» janë shtuar gjithashtu dy opsione të reja «MEMORY» dhe «SERIALIZE», me të cilat mund të përcaktohet madhësia e memories së përdorur dhe koha e kaluar për transformimin e të dhënave për t'u dërguar përmes rrjetit.
- ĂshtĂ« siguruar indikator progresi pĂ«r ekzekutimin e operacionit VACUUM me indekset.
- Një pamje sistemike pg_wait_events është shtuar, e cila së bashku me pamjen pg_stat_activity lejon një studim më të thellë të arsyet e qëndrimit të sesioneve aktive në gjendjen e pritjes.
Burimi: opennet.ru
