Publikimi i PostgreSQL 14 DBMS

Pas një viti zhvillimi, është publikuar një degë e re e qëndrueshme e PostgreSQL 14 DBMS. Përditësimet për degën e re do të publikohen gjatë pesë viteve deri në nëntor 2026.

Risitë kryesore:

  • Mbështetje e shtuar për qasjen në të dhënat JSON duke përdorur shprehje të ngjashme me grupin: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM testi WHERE detajet['attributes']['size'] = '"medium"';

    Një sintaksë e ngjashme zbatohet për të dhënat kryesore/vlera të ofruara nga lloji hstore. Kjo sintaksë fillimisht u zbatua duke përdorur një kornizë universale, e cila në të ardhmen mund të përdoret për lloje të tjera. Shembull për llojin hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable; PËRDITËSONI SETIN e mytable h['c'] = 'i ri';

  • Familja e llojeve për përcaktimin e intervaleve është zgjeruar me lloje të reja "shumërange", të cilat ju lejojnë të specifikoni listat e renditura të vargjeve të vlerave që nuk mbivendosen. Përveç çdo lloji ekzistues të intervalit, propozohet lloji i tij me shumë rreze, për shembull, lloji "int4range" korrespondon me "int4multirange" dhe lloji "daterange" korrespondon me "datemultirange". Përdorimi i llojeve të reja thjeshton hartimin e pyetjeve që manipulojnë sekuenca komplekse të diapazoneve. 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ë përmirësuar performancën e sistemeve me ngarkesë të lartë që përpunojnë një numër të madh lidhjesh. Në disa teste, vërehet një rritje e dyfishtë e performancës.
  • Efikasiteti i indekseve të pemës B është përmirësuar dhe problemi me rritjen e indeksit kur tabelat përditësohen shpesh është zgjidhur.
  • Mbështetje e shtuar për mënyrën e transmetimit të kërkesave nga ana e klientit (e zbatuar në nivelin libpq), e cila ju lejon të shpejtoni ndjeshëm skenarët e bazës së të dhënave që lidhen me kryerjen e një numri të madh operacionesh të vogla shkrimi (INSERT/UPDATE/DELETE) duke dërguar kërkesën tjetër pa pritur rezultatin e asaj të mëparshme. Modaliteti gjithashtu ndihmon në përshpejtimin e punës në lidhjet me vonesa të gjata të dorëzimit të paketave.
  • Aftësi të zgjeruara për konfigurime të shpërndara që përfshijnë shumë serverë PostgreSQL. Në zbatimin e përsëritjes logjike, tani bëhet e mundur dërgimi i transaksioneve në vazhdim në modalitetin e transmetimit, gjë që mund të përmirësojë ndjeshëm performancën e përsëritjes së transaksioneve të mëdha. Përveç kësaj, deshifrimi logjik i të dhënave të marra gjatë riprodhimit logjik është optimizuar.
  • Mekanizmi për lidhjen e tabelave të jashtme Foreign Data Wrapper (postgres_fdw) ka shtuar mbështetje për përpunimin paralel të pyetjeve, i cili aktualisht është i zbatueshëm vetëm kur lidhet me serverë të tjerë PostgreSQL. postgres_fdw shton gjithashtu mbështetje për shtimin e të dhënave në tabela të jashtme në modalitetin e grupit dhe aftësinë për të importuar tabela të ndara duke specifikuar direktivën "IMPORTI SKEMA E HUAJ".
  • Janë bërë optimizime për zbatimin e operacionit VACUUM (mbledhja e mbeturinave dhe paketimi i ruajtjes së diskut). Është shtuar një modalitet pastrimi emergjent që anashkalon operacionet jo thelbësore të pastrimit nëse krijohen kushte për mbylljen e ID-së së transaksionit. Zvogëlohet shpenzimi i përgjithshëm gjatë përpunimit të indekseve në formatin B-Tree. Është përshpejtuar ndjeshëm ekzekutimi i operacionit “ANALYZE”, i cili mbledh statistika për funksionimin e bazës së të dhënave.
  • U shtua aftësia për të konfiguruar metodën e kompresimit të përdorur në sistemin TOAST, i cili është përgjegjës për ruajtjen e të dhënave të mëdha, të tilla si blloqe teksti ose informacione gjeometrike. Përveç metodës së kompresimit pglz, TOAST tani mund të përdorë algoritmin LZ4.
  • Mjetet për monitorimin e funksionimit të DBMS janë zgjeruar. Pamjet e shtuara për të gjurmuar përparimin e komandave COPY (pg_stat_progress_copy), statistikat rreth lojërave të përsëritjes (pg_stat_replication_slots) dhe aktivitetin që lidhet me regjistrin e transaksioneve WAL (pg_stat_wal). Është shtuar funksioni compute_query_id, i cili mundëson nënsisteme të ndryshme, si pg_stat_activity dhe EXPLAIN VERBOSE, të gjurmojnë kërkesat duke caktuar një identifikues unik për secilën kërkesë.
  • Optimizimet janë shtuar në planifikuesin e pyetjeve për të përmirësuar përpunimin paralel të pyetjeve dhe për të përmirësuar performancën e ekzekutimit të njëkohshëm të operacioneve të skanimit sekuencial të regjistrimeve, ekzekutimin paralel të pyetjeve në PL/pgSQL duke përdorur komandën "RETURN QUERY" dhe ekzekutimin paralel të pyetjeve në " REFRESH PAMJE E MATERIALIZUAR”. Për të përmirësuar performancën e bashkimeve ciklike të mbivendosur (bashkuar), është zbatuar mbështetje për caching shtesë.
  • Statistikat e avancuara tani mund të përdoren për të optimizuar shprehjet dhe renditja në rritje tani mund të përdoret për të optimizuar funksionet e dritares.
  • Procedurat e ruajtura që ju lejojnë të menaxhoni transaksionet në blloqe kodi tani mbështesin përcaktimin e të dhënave të kthimit duke përdorur parametrat "OUT".
  • Funksioni date_bin u shtua për të rrumbullakosur vlerat e stampës kohore sipas një intervali të caktuar. SELECT date_bin('15 minuta', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Shprehjet SEARCH dhe CYCLE u shtuan të përcaktuara në standardin SQL për ta bërë më të lehtë renditjen dhe identifikimin e cikleve në shprehjet e zakonshme të tabelës rekursive (CTE). ME REKURSIVE 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 ) THELLËSIA E KËRKIMIT TË PARË NGA id SET SETcolor ZGJIDHJE * NGA pema e kërkimit RENDIT SIPAS renditcol;
  • Në programin psql, është përmirësuar plotësimi automatik i komandave me skeda, aftësia për të shfaqur argumentet e funksionit është shtuar në komandën "\df" dhe statistikat e shfaqura janë zgjeruar në komandën "\dX".
  • Është e mundur të caktohen privilegje vetëm për lexim ose vetëm për shkrim për përdoruesit. Privilegjet mund të vendosen në tabela, pamje dhe skema individuale duke përdorur rolet e paracaktuara pg_read_all_data dhe pg_write_all_data. GRANTOJ pg_read_të gjitha_të dhënat për përdoruesit1;
  • Instalimet e reja janë të paracaktuara për vërtetimin e fjalëkalimit duke përdorur SCRAM-SHA-256 në vend të md5 (parametri "password_encryption" kur gjenerohet postgresql.conf tani është vendosur në 'scram-sha-256').

Burimi: opennet.ru

Shto një koment