PostgreSQL 14 DBMS bertsioa

Urtebeteko garapenaren ondoren, PostgreSQL 14 DBMSaren adar egonkor berri bat argitaratu da. Adar berriaren eguneraketak bost urtean kaleratuko dira 2026ko azarora arte.

Berrikuntza nagusiak:

  • JSON datuetara sartzeko euskarria gehitu da array-itxurako adierazpenak erabiliz: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"ertaina"';

    Antzeko sintaxia inplementatzen da hstore motak emandako gako/balio datuetarako. Sintaxi hau hasiera batean marko unibertsal baten bidez inplementatu zen, etorkizunean beste mota batzuetarako erabil daitekeena. hstore motaren adibidea: INSERT INTO mytable VALUES ('a=>b, c=>d'); HAUTATU h['a'] mytabletik; UPDATE mytable SET h['c'] = 'berria';

  • Barrutiak definitzeko moten familia "multirange" mota berriekin zabaldu da, gainjartzen ez diren balio-barrutien zerrenda ordenatuak zehazteko aukera ematen dutenak. Dauden barruti mota bakoitzaz gain, bere sorta anitzeko mota propioa proposatzen da, adibidez, "int4range" mota "int4multirange"ri dagokio eta "daterange" mota "datemultirange"ri dagokio. Mota berriak erabiltzeak barruti sekuentzia konplexuak manipulatzen dituzten kontsulten diseinua errazten du. HAUTATU '{[3,7), [8,9)}'::int4multirange; HAUTATU nummultirange (numrange (1.0, 14.0), numrange (20.0, 25.0));
  • Konexio ugari prozesatzen dituzten karga handiko sistemen errendimendua hobetzeko optimizazioak egin dira. Zenbait probatan, errendimenduaren bikoiztu egin da.
  • B-zuhaitz indizeen eraginkortasuna hobetu da eta taulak maiz eguneratzen direnean indizearen hazkundearen arazoa konpondu da.
  • Bezeroaren aldetik (libpq mailan inplementatuta) eskaeren kanalizazioaren transmisio modurako euskarria gehitu da, idazketa-eragiketa txiki ugari egitearekin lotutako datu-basearen eszenatokiak nabarmen bizkortzeko aukera ematen duena (txertatu/eguneratu/ezabatu) bidaliz. hurrengo eskaera aurrekoaren emaitzari itxaron gabe. Modu horrek paketeak bidaltzeko atzerapen luzeak dituzten konexioetan lana bizkortzen laguntzen du.
  • PostgreSQL zerbitzari anitzekin konfigurazio banatuetarako gaitasun hobetuak. Erreplikazio logikoaren ezarpenean, orain posible da exekuzio prozesuan dauden transakzioak streaming moduan bidaltzea, eta horrek transakzio handien erreplikazioaren errendimendua nabarmen hobetu dezake. Horrez gain, erreplikazio logikoan jasotako datuen deskodetze logikoa optimizatu da.
  • Kanpoko taulak konektatzeko mekanismoak Foreign Data Wrapper-ek (postgres_fdw) kontsulta paraleloen prozesamendurako euskarria gehitu du, eta hori gaur egun beste PostgreSQL zerbitzari batzuetara konektatzean bakarrik dago aplikagarri. postgres_fdw-k batch moduan kanpoko taulei datuak gehitzeko laguntza gehitzen du eta partikatutako taulak inportatzeko gaitasuna ere gehitzen du "INPORTATU ATZERRIKO ESKEMA" zuzentaraua zehaztuz.
  • HURTSIAN eragiketa ezartzeko optimizazioak egin dira (zabor bilketa eta disko biltegiratzeko ontziratzea). Larrialdi-garbiketa modu bat gehitu da, funtsezkoak ez diren garbiketa-eragiketak saltatzen dituena, transakzio IDa biltzeko baldintzak sortzen badira. B-Tree formatuan indizeak prozesatzen direnean gainkostua murriztu da. Datu-basearen funtzionamenduari buruzko estatistikak biltzen dituen "ANALISI" eragiketaren exekuzioa nabarmen azkartu da.
  • TOAST sisteman erabiltzen den konpresio-metodoa konfiguratzeko gaitasuna gehitu da, hau da, datu handiak gordetzeaz arduratzen dena, hala nola testu-blokeak edo informazio geometrikoa. Pglz konpresio metodoaz gain, TOASTek LZ4 algoritmoa erabil dezake orain.
  • DBMSaren funtzionamendua kontrolatzeko tresnak zabaldu dira. Bistak gehitu dira COPY komandoen (pg_stat_progress_copy), erreplikatze zirrikituen estatistikak (pg_stat_replication_slots) eta WAL transakzioen erregistroarekin erlazionatutako jarduera (pg_stat_wal) jarraipena egiteko. compute_query_id funtzioa gehitu da, eta horri esker, hainbat azpisistemak, hala nola pg_stat_activity eta EXPLAIN VERBOSE, eskaerak jarraitzea ahalbidetzen du, eskaera bakoitzari identifikatzaile esklusibo bat emanez.
  • Kontsulten planifikatzaileari optimizazioak gehitu zaizkio, kontsulten prozesamendu paraleloa hobetzeko eta erregistro sekuentzialaren eskaneatu eragiketen aldibereko exekuzioaren errendimendua hobetzeko, PL/pgSQL-n kontsulten exekuzio paraleloa "RETURN QUERY" komandoa erabiliz eta galderen exekuzio paraleloa hobetzeko " FRESKATU IKUSPEGI MATERIALIZATUA”. Habiaratu ziklikoen fusioen (join) errendimendua hobetzeko, caching gehigarrirako laguntza ezarri da.
  • Estatistika aurreratuak orain adierazpenak optimizatzeko erabil daitezke, eta ordena inkrementala leiho funtzioak optimizatzeko.
  • Kode-blokeetako transakzioak kudeatzeko aukera ematen duten gordetako prozedurek orain itzultzeko datuak definitzea onartzen dute "OUT" parametroak erabiliz.
  • Date_bin funtzioa gehitu da denbora-zigiluaren balioak zehaztutako tarte baten arabera biribiltzeko. SELECT date_bin('15 minutu', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • SQL estandarrean definitutako SEARCH eta CYCLE esamoldeak gehitu dira, Taula Adierazpen Ohiko Errekurtsiboetan (CTE) zikloak ordenatu eta identifikatzea errazteko. 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 ) BILATZAILEAREN SAKONERA FIRST BY id SET ordercol HAUTATU * FROM search_tree ORDER BY ordercol;
  • psql utilitatean, komandoak fitxekin osatze automatikoa hobetu da, "\df" komandoari funtzio-argumentuak bistaratzeko gaitasuna gehitu zaio eta bistaratzen diren estatistikak "\dX" komandora zabaldu dira.
  • Erabiltzaileei irakurtzeko edo idazteko soilik pribilegioak esleitu daitezke. Pribilegioak taula, ikuspegi eta eskem indibidualetan ezar daitezke pg_read_all_data eta pg_write_all_data aurredefinitutako rolak erabiliz. GRANT pg_read_all_data erabiltzaileari1;
  • Instalazio berriek SCRAM-SHA-256 erabiltzen dute lehenetsitako autentifikazioa md5-ren ordez (postgresql.conf sortzerakoan "password_encryption" parametroa 'scram-sha-256' gisa ezarrita dago orain).

Iturria: opennet.ru

Gehitu iruzkin berria