PostgreSQL 14 DBMS release

Nei in jier fan ûntwikkeling is in nije stabile tûke fan 'e PostgreSQL 14 DBMS publisearre. Updates foar de nije tûke wurde oer fiif jier frijjûn oant novimber 2026.

Wichtichste ynnovaasjes:

  • Stipe tafoege foar tagong ta JSON-gegevens mei útdrukkingen dy't tinke oan wurkjen mei arrays: SELECT ("{"postgres": {"release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    In ferlykbere syntaksis wurdt ymplementearre foar de kaai / wearde gegevens levere troch de hstore type. Dizze syntaksis waard yn earste ynstânsje ymplementearre mei in universele ramt, dat yn 'e takomst kin wurde brûkt foar oare soarten. Foarbyld foar hstore type: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytabel; UPDATE mytable SET h['c'] = 'nij';

  • De famylje fan typen foar it definiearjen fan berik is útwreide mei nije "multirange" typen, wêrmei jo oardere listen fan net-oerlappende weardeberiken kinne opjaan. Neist elk besteande beriktype wurdt in eigen multirange-type foarsteld, bygelyks it type "int4range" komt oerien mei "int4multirange", en it type "daterange" komt oerien mei "datemultirange". It brûken fan nije typen simplifies it ûntwerp fan queries dy't komplekse sekwinsjes fan berik manipulearje. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Optimalisaasjes binne makke om de prestaasjes te ferbetterjen fan systemen mei hege lading dy't in grut oantal ferbiningen ferwurkje. Yn guon tests wurdt in dûbele ferheging fan prestaasjes waarnommen.
  • De effisjinsje fan B-beam-yndeksen is ferbettere en it probleem mei yndeksgroei as tabellen faak bywurke wurde is oplost.
  • Stipe tafoege foar de client-side (implementearre op it libpq-nivo) modus fan pipeline-oerdracht fan oanfragen, wêrtroch jo databasescenario's dy't ferbûn binne mei it útfieren fan in grut oantal lytse skriuwoperaasjes (INSERT/UPDATE/DELETE) signifikant kinne fersnelle troch it ferstjoeren fan de folgjende fersyk sûnder it resultaat fan 'e foarige te wachtsjen. De modus helpt ek it wurk oan ferbiningen te fersnellen mei lange fertragingen foar pakketlevering.
  • Ferbettere mooglikheden foar ferdielde konfiguraasjes mei meardere PostgreSQL-tsjinners. Yn 'e ymplemintaasje fan logyske replikaasje wurdt it no mooglik om yn streamingmodus transaksjes te stjoeren dy't yn it proses fan útfiering binne, wat de prestaasjes fan replikaasje fan grutte transaksjes signifikant kinne ferbetterje. Derneist is de logyske dekodearring fan gegevens ûntfongen tidens logyske replikaasje optimalisearre.
  • It meganisme foar it ferbinen fan eksterne tabellen Foreign Data Wrapper (postgres_fdw) hat stipe tafoege foar parallelle query-ferwurking, dy't op it stuit allinich fan tapassing is by it ferbinen mei oare PostgreSQL-tsjinners. postgres_fdw foeget ek stipe ta foar it tafoegjen fan gegevens oan eksterne tabellen yn batchmodus en de mooglikheid om partitioneare tabellen te ymportearjen troch de rjochtline "IMPORT FOREIGN SCHEMA" op te jaan.
  • Optimalisaasjes binne makke foar de ymplemintaasje fan 'e VACUUM-operaasje (garbage collection en ferpakking fan skiif opslach). In needopromingsmodus is tafoege dy't net-essensjele opromingsoperaasjes oerslaan as transaksje-ID-omjouwingsbetingsten oanmakke wurde. Fermindere overhead by it ferwurkjen fan yndeksen yn it B-Tree-formaat. De útfiering fan 'e operaasje "ANALYZE", dy't statistiken sammelt oer de wurking fan 'e database, is signifikant fersneld.
  • Tafoege de mooglikheid om te konfigurearjen de kompresje metoade brûkt yn de TOAST systeem, dat is ferantwurdlik foar it bewarjen fan grutte gegevens, lykas blokken fan tekst of geometryske ynformaasje. Neist de pglz-kompresjemetoade kin TOAST no it LZ4-algoritme brûke.
  • De ark foar it kontrolearjen fan de wurking fan 'e DBMS binne útwreide. Tafoegde werjeften om de fuortgong fan COPY-kommando's te folgjen (pg_stat_progress_copy), statistiken oer replikaasje slots (pg_stat_replication_slots) en aktiviteit yn ferbân mei de WAL transaksje log (pg_stat_wal). De funksje compute_query_id is tafoege, wêrtroch ferskate subsystemen, lykas pg_stat_activity en EXPLAIN VERBOSE, fersiken kinne folgje troch in unike identifier foar elk fersyk ta te jaan.
  • Optimisaasjes binne tafoege oan de queryplanner om de parallelle ferwurking fan fragen te ferbetterjen en de prestaasjes fan simultane útfiering fan opfolgjende record scan operaasjes te ferbetterjen, parallelle útfiering fan queries yn PL/pgSQL mei it kommando "RETURN QUERY" en parallelle útfiering fan queries yn " MATERIALISEERDE WJERZING ferfarskje”. Om de prestaasjes te ferbetterjen fan syklyske nestede fúzjes (meidwaan), is stipe foar ekstra caching ymplementearre.
  • Avansearre statistiken kinne no brûkt wurde om útdrukkingen te optimalisearjen, en inkrementele sortearring kin no brûkt wurde om finsterfunksjes te optimalisearjen.
  • Opsleine prosedueres wêrmei jo transaksjes yn blokken koade kinne beheare, stypje no it definiearjen fan returngegevens mei "OUT" parameters.
  • Date_bin-funksje tafoege om tiidstempelwearden te rûnen neffens in spesifisearre ynterval. SELECT date_bin('15 minuten', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • SEARCH- en CYCLE-útdrukkingen tafoege definieare yn 'e SQL-standert om it makliker te meitsjen om syklusen te bestellen en te identifisearjen yn rekursive Common Table Expressions (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;
  • Yn it psql-hulpprogramma is de autofoltôging fan kommando's mei ljepblêden ferbettere, de mooglikheid om funksje-arguminten te werjaan is tafoege oan it kommando "\df", en de werjûn statistiken binne útwreide nei it kommando "\dX".
  • It is mooglik om allinich-lês- of allinich-skriuwrjochten ta te jaan oan brûkers. Privileezjes kinne wurde ynsteld op yndividuele tabellen, werjeften en skema's mei de foarôf definieare rollen pg_read_all_data en pg_write_all_data. GRANT pg_read_all_data TO brûker1;
  • Nije ynstallaasjes standert foar wachtwurdferifikaasje mei SCRAM-SHA-256 ynstee fan md5 (de parameter "password_encryption" by it generearjen fan postgresql.conf is no ynsteld op 'scram-sha-256').

Boarne: opennet.ru

Add a comment