Рэліз СКБД PostgreSQL 15

Пасля года распрацоўкі апублікавана новая стабільная галіна СКБД PostgreSQL 15. Абнаўленні для новай галінкі будуць выходзіць на працягу пяці гадоў да лістапада 2027 года.

Асноўныя навіны:

  • Дададзена падтрымка SQL-каманды "MERGE", якая нагадвае выраз "INSERT … ON CONFLICT". MERGE дазваляе ствараць умоўныя SQL-выразы, якія аб'ядноўваюць у адным выразе аперацыі INSERT, UPDATE і DELETE. Напрыклад, пры дапамозе MERGE можна арганізаваць зліццё дзвюх табліц, устаўляючы якія адсутнічаюць запісы і абнаўляючы існыя. MERGE INTO customer_account ca USING recent_transactions t ON t.customer_id = ca.customer_id WHEN MATCHED THEN UPDATE SET balance = balance + transaction_value WHEN NOT MATCHED THEN INSERT (customer_id, balance) VALUES
  • Значна палепшаны алгарытмы сартавання дадзеных у памяці і на дыску. У залежнасці ад тыпу дадзеных у тэстах назіраецца павышэнне хуткасці сартавання ад 25% да 400%.
  • Паскорана праца аконных функцый з выкарыстаннем row_number(), rank(), dense_rank() і count().
  • Рэалізавана магчымасць паралельнага выканання запытаў з выразам "SELECT DISTINCT".
  • У механізме падлучэння вонкавых табліц Foreign Data Wrapper (postgres_fdw) рэалізаваная падтрымка асінхронных комітаў у дадатак да дададзенай раней магчымасці асінхроннай апрацоўкі запытаў да вонкавых сервераў.
  • Дададзена магчымасць ужывання алгарытмаў LZ4 і Zstandard (zstd) для сціску WAL-логаў транзакцый, што пры некаторых нагрузках дазваляе адначасова падвысіць прадукцыйнасць і зэканоміць дыскавую прастору. Для скарачэння часу аднаўлення пасля збою дададзеная падтрымка папераджальнага вымання старонак, якія фігуруюць у WAL-логу.
  • Ва ўтыліту pg_basebackup дададзеная падтрымка сціску файлаў з рэзервовымі копіямі на боку сервера, выкарыстоўваючы метады gzip, LZ4 ці zstd. Дадзена магчымасць выкарыстання ўласных модуляў для архівавання, які дазваляе абыйсціся без неабходнасці запуску shell-каманд.
  • Дададзена серыя новых функцый для апрацоўкі радкоў з выкарыстаннем рэгулярных выразаў: regexp_count(), regexp_instr(), regexp_like() і regexp_substr().
  • У функцыю range_agg() дададзена магчымасць агрэгавання шматдыяпазоных тыпаў («multirange»).
  • Дададзены рэжым security_invoker, які дазваляе ствараць уяўленні, якія выконваюцца з правамі выклікае карыстача, а не стваральніка ўяўлення.
  • Для лагічнай рэплікацыяй рэалізавана падтрымка фільтрацыі радкоў і заданні спісаў слупкоў, якія дазваляюць на баку адпраўніка вылучыць з табліцы падмноства дадзеных для рэплікацыі. Акрамя таго, у новай версіі спрошчана кіраванне канфліктамі, напрыклад, з'явілася магчымасць пропуску канфліктуючых транзакцый і аўтаматычнага адключэння падпіскі пры выяўленні памылкі. Пры лагічнай рэплікацыі дазволена выкарыстанне двухфазных комітаў (2PC).
  • Дададзены новы фармат логаў — jsonlog, які захоўвае інфармацыю ў структураваным выглядзе, выкарыстоўваючы фармат JSON.
  • Адміністратару прадстаўлена магчымасць дэлегавання карыстачам асобных паўнамоцтваў для змены вызначаных параметраў канфігурацыі сервера PostgreSQL.
  • Ва ўтыліту psql дададзеная падтрымка пошуку інфармацыі аб наладах (pg_settings) пры дапамозе каманды "dconfig".
  • Забяспечана выкарыстанне падзялянай памяці для назапашвання статыстыкі аб працы сервера, што дазволіла пазбавіцца ад асобнага працэсу збору статыстыкі і перыядычнага скіду стану на дыск.
  • Прадастаўлена магчымасць выкарыстання па змаўчанні ICU лакаляў "ICU Collation", раней у якасці лакалі па змаўчанні можна было выкарыстоўваць толькі лакалі libc.
  • Прапанавана ўбудаванае пашырэнне pg_walinspect, якое дазваляе інспектаваць змесціва файлаў з WAL-логамі пры дапамозе SQL-запытаў.
  • Для схемы public ва ўсіх карыстачоў, за выключэннем уладальніка БД, ажыццёўлены водгук паўнамоцтваў на выкананне каманды CREATE.
  • У PL/Python выдалена падтрымка Python 2. Выдалены састарэлы эксклюзіўны рэжым рэзервовага капіявання ("exclusive backup").

Дадатак: З 19:00 да 20:00 (MSK) адбудзецца вэбінар-абмеркаванне зменаў новай версіі з Паўлам Лузанавым (Postgres Professional). Для тых, у каго не атрымаецца далучыцца да эфіру, адкрыты запіс чэрвеньскага даклада Паўла "PostgreSQL 15: MERGE і не толькі" на PGConf.Russia.

Крыніца: opennet.ru

Дадаць каментар