Izdaja DBMS PostgreSQL 15

После года разработки выпущена новая стабильная версия СУБД PostgreSQL 15. Обновления для этой версии будут выходить на протяжении пяти лет, до ноября 2027 года.

Glavne novosti:

  • Добавлена поддержка 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 (t.customer_id, t.transaction_value);
  • Значительно улучшены алгоритмы сортировки данных как в памяти, так и на диске. В зависимости от типа данных в тестах наблюдается повышение скорости сортировки от 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. Также предоставлена возможность использования собственных модулей для архивирования, что позволяет обойтись без необходимости запуска команд в оболочке. strežnikaДобавлена серия новых функций для обработки строк с использованием регулярных выражений: regexp_count(), regexp_instr(), regexp_like() и regexp_substr().
  • В функцию range_agg() добавлена возможность агрегирования многодиапазонных типов («multirange»).
  • Добавлен режим security_invoker, позволяющий создавать представления, выполняемые с правами вызывающего пользователя, а не создателя представления.
  • Добавлен режим security_invoker, позволяющий создавать представления, выполняемые с правами вызывающего пользователя, а не создателя представления.
  • Za logično replikacijo je bila implementirana podpora za filtriranje vrstic in določanje seznamov stolpcev, kar omogoča, da oddajnik iz tabele izbere podmnožico podatkov za replikacijo. Poleg tega je bila v novi različici poenostavljena obvladovanje konfliktov, na primer, omogočena je bila možnost preskakovanja konfliktnih transakcij in samodejnega onemogočanja naročnine ob odkritju napake. Pri logični replikaciji je dovoljeno uporabljati dvostopenjske potrditve (2PC).
  • Dodana je nova oblika dnevnikov — jsonlog, ki shranjuje informacije v strukturirani obliki, z uporabo formata JSON.
  • Administratorju je bila omogočena delegacija določenih pooblastil uporabnikom za spremembo nekaterih parametrov konfiguracije strežnika PostgreSQL.
  • Užitku psql je bila dodana podpora za iskanje informacij o nastavitvah (pg_settings) z ukazom „\dconfig“.
  • Zagotavljena je bila uporaba deljene pomnilnika za zbiranje statistike o delovanju strežnika, kar je omogočilo odpravo ločenega postopka zbiranja statistike in periodičnega ponastavljanja stanja na disk.
  • Omogočena je bila uporaba privzetih ICU lokalizacij „ICU Collation“, prej je bilo mogoče uporabljati le libc lokalizacije.
  • Predlagana je bila vgrajena razširitev pg_walinspect, ki omogoča inšpekcijo vsebine datotek z WAL dnevniki z uporabo SQL poizvedb.
  • Za shemo public so bili vsem uporabnikom, razen lastniku DB, odvzeti pooblastila za izvajanje ukaza CREATE.
  • V PL/Python je bila odstranjena podpora za Python 2. Odstranjen je bil zastarel ekskluzivni način varnostnega kopiranja („exclusive backup“).

Dopolnilo: Od 19:00 do 20:00 (MSK) bo potekala webinar-razprava o spremembah nove različice s Pavlom Luzanovim (Postgres Professional). Za tiste, ki se ne morejo pridružiti v živo, je na voljo posnetek junijskega predavanja Pavla „PostgreSQL 15: MERGE in še več“ na PGConf.Russia.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster