PostgreSQL 14 DBMS-eldono

Post jaro da evoluo, nova stabila branĉo de la PostgreSQL 14 DBMS estis publikigita. Ĝisdatigoj por la nova branĉo estos publikigitaj dum kvin jaroj ĝis novembro 2026.

Ĉefaj novigoj:

  • Aldonita subteno por aliri JSON-datumojn uzante esprimojn rememorigajn pri laborado kun tabeloj: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"mezo"';

    Simila sintakso estas efektivigita por la ŝlosilaj/valoraj datumoj provizitaj de la hstore tipo. Ĉi tiu sintakso estis komence efektivigita uzante universalan kadron, kiu estonte povas esti uzata por aliaj tipoj. Ekzemplo por hstore tipo: INSERT INTO mytable VALUES ('a=>b, c=>d'); ELEKTU h['a'] EL mytable; UPDATE mytable SET h[‘c’] = ‘nova’;

  • La familio de tipoj por difinado de intervaloj estis pligrandigita per novaj "multrangaj" tipoj, kiuj ebligas al vi specifi ordigitajn listojn de ne-interkovritaj intervaloj de valoroj. Aldone al ĉiu ekzistanta gamo-tipo, estas proponita sia propra multintervala tipo, ekzemple, la tipo "int4range" respondas al "int4multirange", kaj la tipo "daterange" respondas al "datemultirange". La uzo de novaj tipoj simpligas la dezajnon de demandoj kiuj manipulas kompleksajn sekvencojn de intervaloj. ELEKTU '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange (numrange (1.0, 14.0), nombrorange (20.0, 25.0));
  • Optimumigoj estis faritaj por plibonigi la agadon de altŝarĝaj sistemoj prilaboranta grandan nombron da konektoj. En kelkaj testoj, duobla pliiĝo en rendimento estas observita.
  • La efikeco de B-arbaj indeksoj estis plibonigita kaj la problemo kun indekskresko kiam tabeloj estas ofte ĝisdatigitaj estis solvita.
  • Aldonita subteno por la klient-flanko (efektivigita ĉe la libpq-nivelo) reĝimo de dukta transdono de petoj, kiu ebligas al vi signife akceli datumbazajn scenarojn asociitajn kun farado de granda nombro da malgrandaj skribaj operacioj (INSERT/UPDATE/DELETE) sendante la sekva peto sen atendi la rezulton de la antaŭa. La reĝimo ankaŭ helpas akceli laboron pri konektoj kun longaj prokrastoj de liverado de pakaĵoj.
  • Plibonigitaj kapabloj por distribuitaj agordoj implikantaj plurajn PostgreSQL-servilojn. En la efektivigo de logika reproduktado, nun fariĝas eble sendi transakciojn en fluanta reĝimo, kiuj estas en la procezo de ekzekuto, kiuj povas signife plibonigi la agadon de reproduktado de grandaj transakcioj. Krome, la logika malkodado de datumoj ricevitaj dum logika reproduktado estis optimumigita.
  • La mekanismo por konekti eksterajn tabelojn Foreign Data Wrapper (postgres_fdw) aldonis subtenon por paralela pritraktado de demandoj, kiu nuntempe nur aplikeblas kiam li konektas al aliaj PostgreSQL-serviloj. postgres_fdw ankaŭ aldonas subtenon por aldoni datumojn al eksteraj tabeloj en bata reĝimo kaj la kapablon importi dividitajn tabelojn specifante la direktivon "IMPORTI FREMDAJ SCHEMA".
  • Optimumigoj estis faritaj al la efektivigo de la VACUUM-operacio (rubaĵkolekto kaj pakado de disko-stokado). Krizpurigreĝimo estis aldonita, kiu preterlasas ne-esencajn purigoperaciojn se transakciaj ID envolvaj kondiĉoj estas kreitaj. Reduktita supre dum prilaborado de indeksoj en la B-Tree-formato. La ekzekuto de la operacio "ANALIZA", kiu kolektas statistikojn pri la funkciado de la datumbazo, estis signife akcelita.
  • Aldonis la kapablon agordi la kunpreman metodon uzatan en la TOAST-sistemo, kiu respondecas pri stokado de grandaj datumoj, kiel blokoj de teksto aŭ geometriaj informoj. Aldone al la pglz kunprema metodo, TOAST nun povas uzi la LZ4-algoritmon.
  • La iloj por monitori la funkciadon de la DBMS estis vastigitaj. Aldonitaj vidoj por spuri la progreson de COPY-komandoj (pg_stat_progress_copy), statistikoj pri reproduktaj fendoj (pg_stat_replication_slots) kaj agado rilata al la transakcia protokolo de WAL (pg_stat_wal). La funkcio compute_query_id estis aldonita, kiu ebligas diversajn subsistemojn, kiel pg_stat_activity kaj EXPLAIN VERBOSE, spuri petojn atribuante unikan identigilon por ĉiu peto.
  • Optimumigoj estis aldonitaj al la konsultplanilo por plibonigi paralelan prilaboradon de demandoj kaj plibonigi la agadon de samtempa plenumado de sinsekvaj rekordaj skanaj operacioj, paralela plenumado de demandoj en PL/pgSQL per la komando "RETURN QUERY" kaj paralela plenumo de demandoj en " Refreŝigi MATERIALIZITAN VIDON”. Por plibonigi la agadon de ciklaj nestitaj kunfandoj (kuniĝo), subteno por plia kaŝmemoro estis efektivigita.
  • Altnivela statistiko nun povas esti uzata por optimumigi esprimojn, kaj pliiga ordigo nun povas esti uzata por optimumigi fenestrofunkciojn.
  • Stokitaj proceduroj, kiuj ebligas al vi administri transakciojn en blokoj de kodo, nun subtenas difini revenajn datumojn per "EL" parametroj.
  • Aldonita date_bin-funkcio por rondigi tempostampajn valorojn laŭ specifa intervalo. SELECT date_bin('15 minutoj', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Aldonitaj SEARCH kaj CYCLE-esprimoj difinitaj en la SQL-normo por faciligi ordigi kaj identigi ciklojn en rekursivaj Komunaj Tabelesprimoj (CTE). WITH RECURSIVE search_tree(id, link, data) AS ( ELEKTU t.id, t.link, t.data FROM arbo t UNION ĈIUJ ELEKTU t.id, t.link, t.data FROM arbo t, serĉ_arbo st WHERE t. id = st.link ) SEARCH PROFTH FIRST BY id SET SET ordercol SELECT * FROM serĉ_arbo ORDER BY ordoncol;
  • En la psql ilo, la aŭtomata kompletigo de komandoj kun langetoj estis plibonigita, la kapablo montri funkcio-argumentojn estis aldonita al la komando "\df", kaj la montrataj statistikoj estis vastigitaj al la komando "\dX".
  • Eblas asigni nurlegeblajn aŭ skribajn privilegiojn al uzantoj. Privilegioj povas esti fiksitaj sur individuaj tabeloj, vidoj kaj skemoj uzante la antaŭdifinitajn rolojn pg_read_all_data kaj pg_write_all_data. GRANT pg_read_all_data TO user1;
  • Novaj instalaĵoj defaŭlte al pasvorta aŭtentigo uzante SCRAM-SHA-256 anstataŭ md5 (la parametro "password_encryption" dum generado de postgresql.conf estas nun agordita al 'scram-sha-256').

fonto: opennet.ru

Aldoni komenton