Lëshimi i DBMS PostgreSQL 14

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

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster