Datganiad PostgreSQL 14

Ar ôl blwyddyn o ddatblygiad, cyhoeddwyd cangen sefydlog newydd o DBMS PostgreSQL 14. Bydd diweddariadau ar gyfer y gangen newydd yn cael eu rhyddhau dros bum mlynedd tan fis Tachwedd 2026.

Prif arloesiadau:

  • Ychwanegwyd cefnogaeth ar gyfer cyrchu data JSON gan ddefnyddio ymadroddion tebyg i arae: SELECT ('{ "postgres": { "rhyddhau": 14 }} '::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"canolig"';

    Gweithredir cystrawen debyg ar gyfer y data allweddol/gwerth a ddarperir gan y math hstore. Gweithredwyd y gystrawen hon i ddechrau gan ddefnyddio fframwaith cyffredinol, y gellir ei ddefnyddio ar gyfer mathau eraill yn y dyfodol. Enghraifft ar gyfer math hstore: RHOWCH I MEWN I WERTHOEDD mytable ('a=>b, c=>d'); DEWIS H['a'] O mytable; UPDATE mytable SET h['c'] = 'newydd';

  • Mae'r teulu o fathau ar gyfer diffinio ystodau wedi'u hehangu gyda mathau “amryson” newydd, sy'n eich galluogi i nodi rhestrau trefnus o ystodau o werthoedd nad ydynt yn gorgyffwrdd. Yn ogystal â phob math o amrediad presennol, cynigir ei fath aml-ystod ei hun, er enghraifft, mae'r math "int4range" yn cyfateb i "int4multirange", ac mae'r math "daterange" yn cyfateb i "datemultirange". Mae'r defnydd o fathau newydd yn symleiddio dyluniad ymholiadau sy'n trin dilyniannau ystodau cymhleth. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT rhifolrange(numrange(1.0, 14.0), nummrange(20.0, 25.0));
  • Mae optimeiddiadau wedi'u gwneud i wella perfformiad systemau llwyth uchel sy'n prosesu nifer fawr o gysylltiadau. Mewn rhai profion, gwelir cynnydd deublyg mewn perfformiad.
  • Mae effeithlonrwydd mynegeion coed-B wedi'i wella ac mae'r broblem gyda thwf mynegai pan fydd tablau'n cael eu diweddaru'n aml wedi'i datrys.
  • Cefnogaeth ychwanegol i'r modd ochr y cleient (a weithredir ar lefel libpq) o drosglwyddo ceisiadau ar y gweill, sy'n eich galluogi i gyflymu'n sylweddol senarios cronfa ddata sy'n gysylltiedig â chyflawni nifer fawr o weithrediadau ysgrifennu bach (NODWCH / DIWEDDARIAD / DILEU) trwy anfon y cais nesaf heb aros canlyniad yr un blaenorol. Mae'r modd hefyd yn helpu i gyflymu gwaith ar gysylltiadau ag oedi hir wrth ddosbarthu pecynnau.
  • Galluoedd estynedig ar gyfer ffurfweddiadau dosbarthedig sy'n cynnwys lluosog gweinyddwyr PostgreSQL. Mae dyblygu rhesymegol bellach yn cefnogi ffrydio trafodion parhaus, gan wella perfformiad dyblygu trafodion mawr yn sylweddol. Mae datgodio rhesymegol data a dderbynnir yn ystod dyblygu rhesymegol hefyd wedi'i optimeiddio.
  • Mae'r mecanwaith ar gyfer cysylltu tablau allanol Lapiwr Data Tramor (postgres_fdw) wedi ychwanegu cefnogaeth ar gyfer prosesu ymholiadau cyfochrog, sydd ar hyn o bryd ond yn berthnasol wrth gysylltu â gweinyddwyr PostgreSQL eraill. Mae postgres_fdw hefyd yn ychwanegu cefnogaeth ar gyfer ychwanegu data at dablau allanol yn y modd swp a'r gallu i fewnforio tablau rhanedig trwy nodi'r gyfarwyddeb “SCHEMA TRAMOR MEWNFORIO”.
  • Gwnaed optimeiddiadau i weithrediad y gweithrediad VACUUM (casglu sbwriel a phecynnu storfa ddisg). Mae modd glanhau brys wedi'i ychwanegu sy'n hepgor gweithrediadau glanhau nad ydynt yn hanfodol os crëir amodau cofleidiol ID trafodion. Llai o orbenion wrth brosesu mynegeion yn y fformat B-Tree. Mae gweithrediad y gweithrediad “DADANSODDIAD”, sy'n casglu ystadegau am weithrediad y gronfa ddata, wedi'i gyflymu'n sylweddol.
  • Ychwanegwyd y gallu i ffurfweddu'r dull cywasgu a ddefnyddir yn y system TOAST, sy'n gyfrifol am storio data mawr, megis blociau o destun neu wybodaeth geometrig. Yn ogystal â'r dull cywasgu pglz, gall TOAST nawr ddefnyddio'r algorithm LZ4.
  • Mae'r offer ar gyfer monitro gweithrediad y DBMS wedi'u hehangu. Ychwanegwyd golygfeydd i olrhain cynnydd gorchmynion COPY (pg_stat_progress_copy), ystadegau am slotiau atgynhyrchu (pg_stat_replication_slots) a gweithgaredd sy'n gysylltiedig â log trafodion WAL (pg_stat_wal). Mae'r ffwythiant compute_query_id wedi ei ychwanegu, sy'n galluogi is-systemau amrywiol, megis pg_stat_activity ac EXPLAIN VERBOSE, i olrhain ceisiadau trwy aseinio dynodwr unigryw ar gyfer pob cais.
  • Mae optimeiddiadau wedi'u hychwanegu at y cynllunydd ymholiad i wella prosesu ymholiadau cyfochrog a gwella perfformiad gweithredu ar yr un pryd o weithrediadau sganio cofnodion dilyniannol, cyflawni ymholiadau yn PL/pgSQL yn gyfochrog gan ddefnyddio'r gorchymyn “RETURN QUERY”, a gweithredu ymholiadau cyfochrog yn “ GOLWG WEDI'I DDIWYFOLI”. Er mwyn gwella perfformiad uno cylchol (join), mae cefnogaeth ar gyfer caching ychwanegol wedi'i roi ar waith.
  • Bellach gellir defnyddio ystadegau uwch i optimeiddio mynegiadau, a gellir defnyddio didoli cynyddrannol yn awr i optimeiddio swyddogaethau ffenestr.
  • Mae gweithdrefnau wedi'u storio sy'n eich galluogi i reoli trafodion mewn blociau o god bellach yn cefnogi diffinio data dychwelyd gan ddefnyddio paramedrau "OUT".
  • Ychwanegwyd swyddogaeth date_bin i dalgrynnu gwerthoedd stamp amser yn ôl cyfwng penodedig. SELECT date_bin('15 munud', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Ymadroddion CHWILIO a CYLCH YCHWANEGOL a ddiffinnir yn y safon SQL i'w gwneud yn haws archebu ac adnabod cylchoedd mewn Mynegiadau Tabl Cyffredin ailadroddus (CTE). GYDA RECURSIVE search_tree(id, dolen, data) UG ( SELECT t.id, t.link, t.data O'r goeden t UNDEB PAWB SELECT t.id, t.link, t.data O goeden t, search_tree st LLE t. id = st.link ) Dyfnder CHWILIO YN GYNTAF GAN id SET ordercol SELECT * O search_tree GORCHYMYN GAN ordercol;
  • Yn y cyfleustodau psql, mae awtolenwi gorchmynion gyda thabiau wedi'i wella, mae'r gallu i arddangos dadleuon swyddogaeth wedi'i ychwanegu at y gorchymyn "\df", ac mae'r ystadegau a ddangosir wedi'u hehangu i'r gorchymyn "\ dX".
  • Mae'n bosibl aseinio breintiau darllen yn unig neu ysgrifennu yn unig i ddefnyddwyr. Gellir gosod breintiau ar dablau unigol, golygfeydd, a sgemâu gan ddefnyddio'r rolau rhagddiffiniedig pg_read_all_data a pg_write_all_data. GRANT pg_read_all_data I ddefnyddiwr1;
  • Gosodiadau newydd rhagosodedig i ddilysu cyfrinair gan ddefnyddio SCRAM-SHA-256 yn lle md5 (mae'r paramedr "password_encryption" wrth gynhyrchu postgresql.conf bellach wedi'i osod i 'scram-sha-256').

Ffynhonnell: opennet.ru