UtgÄvan av databasen PostgreSQL 14

Efter ett Ärs utveckling har den nya stabila versionen av databasen PostgreSQL 14 publicerats. Uppdateringar för den nya versionen kommer att slÀppas under fem Är fram till november 2026.

Huvudsakliga nyheter:

  • Stöd för Ă„tkomst av JSON-data har lagts till med uttryck som liknar arbete med matriser: SELECT (‘{ «postgres»: { «release»: 14 }}’::jsonb)[‘postgres’][‘release’]; SELECT * FROM test WHERE details[‘attributes’][‘size’] = ‘»medium»‘;

    En liknande syntax har implementerats för nyckel/vĂ€rde-data som tillhandahĂ„lls av typen hstore. Denna syntax implementerades initialt med hjĂ€lp av ett universellt ramverk, som i framtiden kan anvĂ€ndas för andra typer. Exempel för typen hstore: INSERT INTO mytable VALUES (‘a=>b, c=>d’); SELECT h[‘a’] FROM mytable; UPDATE mytable SET h[‘c’] = ‘new’;

  • Typfamiljen för att definiera intervall har utökats med nya typer av «multirange», vilket möjliggör att ange ordnade listor av icke-överlappande vĂ€rdeintervall. För varje befintlig range-typ har en motsvarande multirange-typ föreslagits, till exempel motsvarar «int4range» typen «int4multirange», och «daterange» motsvarar «datemultirange». AnvĂ€ndningen av de nya typerna förenklar skapandet av frĂ„gor som manipulerar komplexa sekvenser av intervall. SELECT ‘{[3,7), [8,9)}’::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Optimeringar har gjorts för att förbĂ€ttra prestanda i högbelastade system som hanterar ett stort antal anslutningar. I vissa tester har en dubblerad prestanda observerats.
  • Effektiviteten av B-tree-index har förbĂ€ttrats och ett problem med indexens tillvĂ€xt vid frekvent uppdatering av tabeller har lösts.
  • Stöd för klientbaserad pipelining (implementerat pĂ„ libpq-nivĂ„) har lagts till, vilket möjliggör betydligt snabbare databasscenarier relaterade till utförande av ett stort antal smĂ„ skrivĂ„tgĂ€rder (INSERT/UPDATE/DELETE) genom att skicka nĂ€sta frĂ„ga utan att vĂ€nta pĂ„ resultatet av den föregĂ„ende. LĂ€ge hjĂ€lper ocksĂ„ till att pĂ„skynda arbetet vid anslutningar med stora paketfördröjningar.
  • Möjligheterna för distribuerade konfigurationer som omfattar flera servrar PostgreSQL. I den logiska replikationsimplementeringen har möjligheten att skicka transaktioner som Ă€r under utförande i realtid lagts till, vilket avsevĂ€rt ökar prestandan för replikering av stora transaktioner. Dessutom har logisk dekodering av data som kommer under logisk replikation optimerats.
  • I mekanismen för anslutning av externa tabeller, Foreign Data Wrapper (postgres_fdw), har stöd för parallell behandlingsförfrĂ„gningar lagts till, vilket för nĂ€rvarande Ă€r tillgĂ€ngligt endast vid anslutning till andra PostgreSQL-servrar. I postgres_fdw har Ă€ven stöd lagts till för att lĂ€gga till data i externa tabeller i batchlĂ€ge och möjligheten att importera partitionerade tabeller genom att ange direktivet 'IMPORT FOREIGN SCHEMA'.
  • Optimiseringar har gjorts i genomförandet av VACUUM-operationen (skrĂ€puppsamling och packning av lagringsutrymme). En nödlĂ€gesrengöringsmetod ('emergency mode') har lagts till, som hoppar över ovĂ€sentliga rengöringsoperationer om det skapas förutsĂ€ttningar för att identifieringsnummer för transaktioner ska gĂ„ runt (transaction ID wraparound). Överheaden vid behandling av index i B-Tree-format har minskats. Utförandet av ANALYZE-operationen, som samlar statistik om databasens prestanda, har avsevĂ€rt accelererats.
  • Möjligheten att konfigurera komprimeringsmetoden som anvĂ€nds i TOAST-systemet för lagring av stora data, sĂ„som textblock eller geometrisk information, har lagts till. Förutom komprimeringsmetoden pglz kan LZ4-algoritmen nu anvĂ€ndas i TOAST.
  • Verktygen för övervakning av databashanteringssystemets arbete har utökats. Visningar har lagts till för att spĂ„ra framsteg för 'COPY'-kommandon (pg_stat_progress_copy), statistik över replikationsslottar (pg_stat_replication_slots) och aktivitet kopplad till WAL-loggen för transaktioner (pg_stat_wal). Funktionen compute_query_id har lagts till, vilket inkluderar spĂ„rning av förfrĂ„gningar med tilldelning av ett unikt identifieringsnummer för varje förfrĂ„gan i olika delsystem, sĂ„som pg_stat_activity och EXPLAIN VERBOSE.
  • I planeringsverktyget för förfrĂ„gningar har optimeringar lagts till som förbĂ€ttrar den parallella behandlingen av förfrĂ„gningar och möjliggör en ökning av prestandan vid samtidig exekvering av operationer för sekventiell genomsökning av poster, parallell körning av frĂ„gor i PL/pgSQL med hjĂ€lp av kommandot «RETURN QUERY» och parallell exekvering av frĂ„gor i «REFRESH MATERIALIZED VIEW». För att öka prestandan vid cykliska sammanfogningar (join) har stöd för ytterligare cachning implementerats.
  • För optimering av uttryck kan nu utökad statistik anvĂ€ndas, och för optimering av fönsterfunktioner - inkrementell sortering.
  • I lagrade procedurer som tillĂ„ter hantering av transaktioner i kodblock har stöd för att definiera returdata via parametrar «OUT» implementerats.
  • Funktionen date_bin har lagts till för att avrunda vĂ€rden av typen timestamp enligt ett angivet intervall. SELECT date_bin(’15 minutes’, TIMESTAMP ‘2020-02-11 15:44:17’, TIMESTAMP ‘2001-01-01’); 2020-02-11 15:30:00
  • Uttrycken SEARCH och CYCLE, definierade av standarden SQL, har lagts till, vilket förenklar sortering och identifiering av cykler i rekursiva allmĂ€nna tabelluttryck (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;
  • I verktyget psql har autocompletion av kommandon med tabulatortangenten förbĂ€ttrats, i kommandot «\df» har möjligheten att visa argument för funktioner lagts till, och i kommandot «\dX» har utdata statistiken utökats.
  • Möjlighet har tillhandahĂ„llits att ge anvĂ€ndare privilegier som endast tillĂ„ter lĂ€sning eller endast skrivning. Privilegier kan ges kopplade till specifika tabeller, vyer och scheman med hjĂ€lp av fördefinierade roller pg_read_all_data och pg_write_all_data. GRANT pg_read_all_data TO user1;
  • I nya installationer Ă€r standardinstĂ€llningen nu att sĂ€kerstĂ€lla anvĂ€ndning av lösenordsautentisering med hjĂ€lp av metoden SCRAM-SHA-256 istĂ€llet för md5 (parametern «password_encryption» i generering av postgresql.conf stĂ€lls nu in pĂ„ vĂ€rdet ‘scram-sha-256’).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster