PostgreSQL 14 vrystelling

Na 'n jaar van ontwikkeling is 'n nuwe stabiele tak van die PostgreSQL 14 DBMS gepubliseer. Opdaterings vir die nuwe tak sal oor vyf jaar vrygestel word tot November 2026.

Belangrikste innovasies:

  • Bygevoeg ondersteuning vir toegang tot JSON data deur gebruik te maak van uitdrukkings wat herinner aan werk met skikkings: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    'n Soortgelyke sintaksis word geïmplementeer vir die sleutel/waarde-data wat deur die hstore-tipe verskaf word. Hierdie sintaksis is aanvanklik geïmplementeer met behulp van 'n universele raamwerk, wat in die toekoms vir ander tipes gebruik kan word. Voorbeeld vir hstore tipe: INSERT INTO mytable VALUES ('a=>b, c=>d'); KIES h['a'] VANAF mytabel; UPDATE mytabel SET h['c'] = 'nuut';

  • Die familie van tipes vir die definisie van reekse is uitgebrei met nuwe "multirange" tipes, wat jou toelaat om geordende lyste van nie-oorvleuelende reekse waardes te spesifiseer. Benewens elke bestaande reeks tipe, word sy eie multireeks tipe voorgestel, byvoorbeeld die tipe "int4range" stem ooreen met "int4multirange", en die tipe "daterange" stem ooreen met "datemultirange". Die gebruik van nuwe tipes vereenvoudig die ontwerp van navrae wat komplekse reekse reekse manipuleer. KIES '{[3,7), [8,9)}'::int4multirange; KIES getalmultireeks(getalreeks(1.0, 14.0), getalreeks(20.0, 25.0));
  • Optimalisasies is gemaak om die werkverrigting van hoëladingstelsels wat 'n groot aantal verbindings verwerk, te verbeter. In sommige toetse word 'n tweevoudige toename in prestasie waargeneem.
  • Die doeltreffendheid van B-boom-indekse is verbeter en die probleem met indeksgroei wanneer tabelle gereeld opgedateer word, is opgelos.
  • Bygevoeg ondersteuning vir die kliënt-kant (geïmplementeer op die libpq-vlak) modus van pyplyn-oordrag van versoeke, wat jou toelaat om databasisscenario's wat verband hou met die uitvoer van 'n groot aantal klein skryfbewerkings (INSERT/UPDATE/DELETE) aansienlik te versnel deur die stuur van die volgende versoek sonder om die resultaat van die vorige een te wag. Die modus help ook om werk aan verbindings te bespoedig met lang pakkie afleweringsvertragings.
  • Verbeterde vermoëns vir verspreide konfigurasies wat verskeie PostgreSQL-bedieners behels. In die implementering van logiese replikasie word dit nou moontlik om transaksies in stroommodus te stuur wat in die proses van uitvoering is, wat die prestasie van replikasie van groot transaksies aansienlik kan verbeter. Daarbenewens is die logiese dekodering van data wat tydens logiese replikasie ontvang is, geoptimaliseer.
  • Die meganisme vir die koppeling van eksterne tabelle Foreign Data Wrapper (postgres_fdw) het ondersteuning bygevoeg vir parallelle navraagverwerking, wat tans slegs van toepassing is wanneer aan ander PostgreSQL-bedieners gekoppel word. postgres_fdw voeg ook ondersteuning by vir die byvoeging van data by eksterne tabelle in bondelmodus en die vermoë om gepartisioneerde tabelle in te voer deur die "IMPORT FOREIGN SCHEMA"-direktief te spesifiseer.
  • Optimalisasies is gemaak vir die implementering van die VACUUM-operasie (vullisversameling en verpakking van skyfberging). 'n Noodopruimmodus is bygevoeg wat nie-noodsaaklike opruimingsoperasies oorslaan as transaksie-ID-omlooptoestande geskep word. Verminder bokoste wanneer indekse in die B-Tree-formaat verwerk word. Die uitvoering van die "ANALYSE"-operasie, wat statistieke oor die werking van die databasis versamel, is aansienlik versnel.
  • Die vermoë bygevoeg om die kompressiemetode wat in die TOAST-stelsel gebruik word, te konfigureer, wat verantwoordelik is vir die stoor van groot data, soos blokke teks of geometriese inligting. Benewens die pglz-kompressiemetode, kan TOAST nou die LZ4-algoritme gebruik.
  • Die instrumente vir die monitering van die werking van die DBBS is uitgebrei. Bygevoeg aansigte om die vordering van COPY opdragte (pg_stat_progress_copy), statistieke oor replikasiegleuwe (pg_stat_replication_slots) en aktiwiteit wat verband hou met die WAL-transaksielog (pg_stat_wal) na te spoor. Die compute_query_id funksie is bygevoeg, wat verskeie substelsels, soos pg_stat_activity en EXPLAIN VERBOSE, in staat stel om versoeke na te spoor deur 'n unieke identifiseerder vir elke versoek toe te ken.
  • Optimalisasies is by die navraagbeplanner gevoeg om parallelle verwerking van navrae te verbeter en die werkverrigting van gelyktydige uitvoering van opeenvolgende rekordskanderingbewerkings, parallelle uitvoering van navrae in PL/pgSQL met behulp van die "RETURN QUERY"-opdrag te verbeter, en parallelle uitvoering van navrae in " VERFRIS GEMATERIALISEERDE UITSIG”. Om die werkverrigting van sikliese geneste samesmeltings (aansluiting) te verbeter, is ondersteuning vir bykomende kas geïmplementeer.
  • Gevorderde statistieke kan nou gebruik word om uitdrukkings te optimaliseer, en inkrementele sortering kan nou gebruik word om vensterfunksies te optimaliseer.
  • Gestoorde prosedures wat jou toelaat om transaksies in blokke kode te bestuur, ondersteun nou die definisie van terugkeerdata deur gebruik te maak van "OUT" parameters.
  • Bygevoeg date_bin-funksie om tydstempelwaardes af te rond volgens 'n gespesifiseerde interval. SELECT date_bin('15 minute', TYDSAMP '2020-02-11 15:44:17', TYDSAMP '2001-01-01'); 2020-02-11 15:30:00
  • Bygevoeg SEARCH en CYCLE uitdrukkings gedefinieer in die SQL-standaard om dit makliker te maak om siklusse in rekursiewe Common Table Expressions (CTE) te orden en te identifiseer. MET REKURSIEWE soekboom(id, skakel, data) AS ( KIES t.id, t.skakel, t.data VAN boom t UNION ALLE KIES t.id, t.skakel, t.data VANAF boom t, soekboom st WAAR t. id = st.link ) SOEK DIEPTE EERSTE DEUR id STEL ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • In die psql-nutsding is die outovoltooiing van opdragte met oortjies verbeter, die vermoë om funksie-argumente te vertoon is by die "\df"-opdrag gevoeg, en die vertoonde statistieke is uitgebrei na die "\dX"-opdrag.
  • Dit is moontlik om slegs-lees- of skryf-alleen-regte aan gebruikers toe te ken. Voorregte kan op individuele tabelle, aansigte en skemas ingestel word deur die voorafbepaalde rolle pg_read_all_data en pg_write_all_data te gebruik. KEN pg_read_all_data AAN gebruiker1;
  • Nuwe installasies is verstek na wagwoordverifikasie met SCRAM-SHA-256 in plaas van md5 (die "password_encryption"-parameter wanneer postgresql.conf gegenereer word, is nou op 'scram-sha-256' gestel).

Bron: opennet.ru

Voeg 'n opmerking