Релиз на СУБД 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 (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. Осигурена е възможност за използване на собствени модули за архивиране, позволяваща да се заобиколи необходимостта от стартиране на 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster