PostgreSQL 14 DBMS lage

Apre yon ane nan devlopman, yo te pibliye yon nouvo branch ki estab nan DBMS PostgreSQL 14. Mizajou pou nouvo branch lan pral lage sou senk ane jiska novanm 2026.

Prensipal inovasyon:

  • Te ajoute sipò pou jwenn aksè nan done JSON lè l sèvi avèk ekspresyon ki raple travay ak etalaj: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM tès WHERE detay['attributes']['size'] = '"mwayen"';

    Yon sentaks menm jan an aplike pou done kle/valè kalite hstore bay yo. Sentaks sa a te okòmansman aplike lè l sèvi avèk yon fondasyon inivèsèl, ki nan lavni an ka itilize pou lòt kalite. Egzanp pou kalite hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); CHWAZI h['a'] FROM mytable; UPDATE mytable SET h['c'] = 'nouvo';

  • Yo te elaji fanmi kalite pou defini seri ak nouvo kalite "multirange", ki pèmèt ou presize lis òdone seri valè ki pa sipèpoze. Anplis de chak kalite ranje ki egziste deja, yo pwopoze pwòp kalite multirange li yo, pou egzanp, kalite "int4range" koresponn ak "int4multirange", ak kalite "daterange" koresponn ak "datemultirange". Itilizasyon nouvo kalite senplifye konsepsyon demann ki manipile sekans konplèks seri. CHWAZI '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Optimisasyon yo te fè pou amelyore pèfòmans sistèm gwo chaj yo trete yon gwo kantite koneksyon. Nan kèk tès, yo obsève yon ogmantasyon de fwa nan pèfòmans.
  • Efikasite nan endèks B-tree yo te amelyore ak pwoblèm nan ak kwasans endèks lè tab yo souvan mete ajou yo te rezoud.
  • Te ajoute sipò pou mòd transmisyon demann pipeline bò kliyan (aplike nan nivo libpq), ki pèmèt ou siyifikativman akselere senaryo baz done ki asosye ak fè yon gwo kantite ti operasyon ekri (INSERT/UPDATE/DELETE) lè w voye a. pwochen demann san yo pa tann rezilta a nan yon sèl anvan an. Mòd la ede tou akselere travay sou koneksyon ak reta livrezon pake long.
  • Kapasite amelyore pou konfigirasyon distribye ki enplike plizyè sèvè PostgreSQL. Nan aplikasyon an nan replikasyon lojik, li kounye a vin posib yo voye tranzaksyon an pwogrè nan mòd difizyon, ki ka siyifikativman amelyore pèfòmans nan replikasyon nan tranzaksyon gwo. Anplis de sa, yo te optimize dekodaj lojik done yo resevwa pandan replikasyon lojik.
  • Mekanis pou konekte tab ekstèn Foreign Data Wrapper (postgres_fdw) te ajoute sipò pou pwosesis rechèch paralèl, ki kounye a aplikab sèlman lè w konekte ak lòt sèvè PostgreSQL. postgres_fdw tou ajoute sipò pou ajoute done nan tab ekstèn nan mòd pakèt ak kapasite nan enpòte tab patisyon yo lè li espesifye "ENPÒTE SCHEMA ETRANJÈ" la.
  • Optimisasyon yo te fè nan aplikasyon an nan operasyon an VACUUM (koleksyon fatra ak anbalaj nan depo disk). Yo te ajoute yon mòd netwayaj ijans ki sote operasyon netwayaj ki pa esansyèl yo si yo kreye kondisyon idantifikasyon tranzaksyon yo. Diminye sou tèt lè w ap trete endèks yo nan fòma B-Tree. Egzekisyon "ANALYZE" operasyon an, ki kolekte estatistik sou operasyon baz done a, te siyifikativman akselere.
  • Te ajoute kapasite nan konfigirasyon metòd konpresyon yo itilize nan sistèm TOAST la, ki responsab pou estoke done gwo, tankou blòk tèks oswa enfòmasyon jeyometrik. Anplis de metòd konpresyon pglz la, TOAST kapab kounye a itilize algorithm LZ4 la.
  • Zouti yo pou kontwole operasyon an nan DBMS yo te elaji. Te ajoute opinyon pou swiv pwogrè kòmandman COPY (pg_stat_progress_copy), estatistik sou plas replikasyon (pg_stat_replication_slots) ak aktivite ki gen rapò ak tranzaksyon WAL (pg_stat_wal). Yo te ajoute fonksyon compute_query_id la, ki pèmèt divès subsistèm, tankou pg_stat_activity ak EXPLAIN VERBOSE, pou swiv demann lè yo bay yon idantifyan inik pou chak demann.
  • Optimisasyon yo te ajoute nan planifikatè rechèch la pou amelyore pwosesis paralèl demann yo ak amelyore pèfòmans similtane ekzekisyon operasyon dosye sekans, egzekisyon paralèl demann nan PL/pgSQL lè l sèvi avèk kòmandman "RETURN QUERY" la, ak ekzekisyon paralèl demann nan " REFRESH MATERIALIZED VIEW”. Pou amelyore pèfòmans siklik enbrike fusions (join), sipò pou kachèt adisyonèl yo te aplike.
  • Kounye a, estatistik avanse ka itilize pou optimize ekspresyon, epi kounye a ka itilize klasman incrémentielle pou optimize fonksyon fenèt yo.
  • Pwosedi ki estoke ki pèmèt ou jere tranzaksyon nan blòk kòd kounye a sipòte defini done retounen lè l sèvi avèk paramèt "SOTI".
  • Te ajoute fonksyon date_bin nan awondi valè timestamp dapre yon entèval espesifye. SELECT date_bin('15 minit', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Te ajoute ekspresyon SEARCH ak CYCLE ki defini nan estanda SQL pou rann li pi fasil pou kòmande ak idantifye sik nan ekspresyon Tablo komen (CTE) repetitif. AK RECURSIVE search_tree(id, link, data) AS (CHWAZI t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st KOTE t. id = st.link ) CHÈCHE PWOFONDÈ FIRST BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Nan sèvis piblik psql la, yo te amelyore otokonplesyon kòmandman yo ak onglè, kapasite pou montre agiman fonksyon yo te ajoute nan lòd "\df" la, epi estatistik ki parèt yo te elaji nan lòd "\dX".
  • Li posib pou bay itilizatè yo privilèj pou lekti sèlman oswa ekri sèlman. Yo ka mete privilèj sou tab endividyèl, opinyon, ak chema lè l sèvi avèk wòl predefini pg_read_all_data ak pg_write_all_data. BYEN pg_read_all_data POU itilizatè1;
  • Nouvo enstalasyon yo defo pou otantifikasyon modpas lè l sèvi avèk SCRAM-SHA-256 olye pou yo md5 (paramèt "password_encryption" lè jenere postgresql.conf se kounye a mete nan 'scram-sha-256').

Sous: opennet.ru

Add nouvo kòmantè