Paglabas ng PostgreSQL 15

Pagkatapos ng isang taon ng pag-develop, isang bagong stable na branch ng PostgreSQL 15 DBMS ang na-publish. Ang mga update para sa bagong branch ay ilalabas sa loob ng limang taon hanggang Nobyembre 2027.

Mga pangunahing inobasyon:

  • Nagdagdag ng suporta para sa SQL command na "MERGE", na kahawig ng expression na "INSERT ... ON CONFLICT". Binibigyang-daan ka ng MERGE na lumikha ng mga conditional SQL statement na pinagsama ang INSERT, UPDATE, at DELETE na mga operasyon sa isang expression. Halimbawa, gamit ang MERGE, maaari mong pagsamahin ang dalawang talahanayan sa pamamagitan ng pagpasok ng mga nawawalang tala at pag-update ng mga umiiral na. PAGSAMA-SAMA SA customer_account ca PAGGAMIT recent_transactions t SA t.customer_id = ca.customer_id KAPAG MATCHED THEN UPDATE SET balance = balanse + transaction_value KAPAG HINDI MATCHED THEN INSERT (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
  • Ang mga algorithm para sa pag-uuri ng data sa memorya at sa disk ay makabuluhang napabuti. Depende sa uri ng data, ang mga pagsubok ay nagpapakita ng pagtaas sa bilis ng pag-uuri mula 25% hanggang 400%.
  • Ang mga function ng window gamit ang row_number(), rank(), dense_rank() at count() ay pinabilis.
  • Ang posibilidad ng parallel execution ng mga query na may expression na "SELECT DISTINCT" ay ipinatupad.
  • Ang mekanismo para sa pagkonekta ng mga panlabas na talahanayan ay ang Foreign Data Wrapper (postgres_fdw) ay nagpapatupad ng suporta para sa mga asynchronous na commit bilang karagdagan sa dati nang idinagdag na kakayahang magproseso ng mga kahilingan sa mga external na server nang hindi magkakasabay.
  • Idinagdag ang kakayahang gumamit ng mga algorithm ng LZ4 at Zstandard (zstd) upang i-compress ang mga log ng transaksyon sa WAL, na, sa ilalim ng ilang mga workload, ay maaaring sabay na mapabuti ang pagganap at makatipid ng espasyo sa disk. Upang bawasan ang oras ng pagbawi pagkatapos ng kabiguan, idinagdag ang suporta para sa aktibong pagkuha ng mga pahina sa WAL log.
  • Ang pg_basebackup utility ay nagdagdag ng suporta para sa server-side compression ng mga backup na file gamit ang gzip, LZ4 o zstd na pamamaraan. Posibleng gumamit ng sarili mong mga module para sa pag-archive, na nagbibigay-daan sa iyong gawin nang hindi nangangailangan na magpatakbo ng mga shell command.
  • Isang serye ng mga bagong function ang naidagdag para sa pagproseso ng mga string gamit ang mga regular na expression: regexp_count(), regexp_instr(), regexp_like() at regexp_substr().
  • Ang kakayahang pagsama-samahin ang mga uri ng multirange (β€œmultirange”) ay naidagdag sa function na range_agg().
  • Nagdagdag ng security_invoker mode, na nagbibigay-daan sa iyong lumikha ng mga view na tumatakbo bilang tumatawag na user sa halip na ang tagalikha ng view.
  • Para sa lohikal na pagtitiklop, ang suporta para sa pag-filter ng mga row at pagtukoy ng mga listahan ng mga column ay ipinatupad, na nagbibigay-daan sa panig ng nagpadala na pumili ng subset ng data mula sa talahanayan para sa pagtitiklop. Bilang karagdagan, pinapasimple ng bagong bersyon ang pamamahala ng salungatan, halimbawa, posible na ngayong laktawan ang mga magkasalungat na transaksyon at awtomatikong i-disable ang isang subscription kapag may nakitang error. Ang lohikal na pagtitiklop ay nagbibigay-daan sa paggamit ng two-phase commits (2PC).
  • May naidagdag na bagong format ng log - jsonlog, na nagse-save ng impormasyon sa isang structured na form gamit ang JSON na format.
  • Ang administrator ay may kakayahang magtalaga ng mga indibidwal na karapatan sa mga user upang baguhin ang ilang partikular na mga parameter ng configuration ng PostgreSQL server.
  • Ang psql utility ay nagdagdag ng suporta para sa paghahanap ng impormasyon tungkol sa mga setting (pg_settings) gamit ang command na "\dconfig".
  • Ang paggamit ng nakabahaging memorya ay sinisiguro para sa pag-iipon ng mga istatistika tungkol sa pagpapatakbo ng server, na ginagawang posible na mapupuksa ang isang hiwalay na proseso ng pagkolekta ng mga istatistika at pana-panahong pag-reset ng estado sa disk.
  • Ang kakayahang gamitin ang mga default na lokal na ICU na "ICU Collation" ay ibinigay; dati, ang mga libc locale lamang ang maaaring gamitin bilang default na lokal.
  • Ang isang built-in na extension na pg_walinspect ay iminungkahi, na nagbibigay-daan sa iyong suriin ang mga nilalaman ng mga file na may mga WAL log gamit ang mga query sa SQL.
  • Para sa pampublikong schema, lahat ng mga user, maliban sa may-ari ng database, ay nagkaroon ng kanilang awtoridad na isagawa ang CREATE command na binawi.
  • Inalis ang suporta para sa Python 2 sa PL/Python. Inalis na ang hindi na ginagamit na eksklusibong backup mode.

Dagdag: Mula 19:00 hanggang 20:00 (MSK) magkakaroon ng webinar na tumatalakay sa mga pagbabago sa bagong bersyon kasama si Pavel Luzanov (Postgres Professional). Para sa mga hindi makasali sa broadcast, ang pagre-record ng ulat ng Hunyo ni Pavel na "PostgreSQL 15: MERGE at higit pa" sa PGConf.Russia ay bukas.

Pinagmulan: opennet.ru

Magdagdag ng komento