Издание на СУБД 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().
  • Реализована возможность параллельного выполнения запросов c выражением «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»).
  • В функцию range_agg() добавлена возможность агрегирования многодиапазоных типов («multirange»).
  • Добавен е режим security_invoker, позволяващ създаването на представления, изпълнявани с правата на извикващия потребител, а не на създателя на представлението.
  • За логичната репликация е реализирана поддръжка за филтриране на редове и задаване на списъци с колони, позволяващи на страната на изпращача да изолира подмножество от данни за репликация от таблицата. Освен това, в новата версия е опростено управлението на конфликти, например, е добавена възможността за пропускане на конфликтни транзакции и автоматично прекратяване на абонамента при установяване на грешка. При логичната репликация е разрешено използването на двуметоден ангажимент (2PC).
  • Добавлен новый формат логов — jsonlog, сохраняющий информацию в структурированнов виде, используя формат JSON.
  • Администраторът получи възможност за делегиране на индивидуални права на потребителите за промяна на определени параметри. конфигурации на сървъра PostgreSQL.
  • В утилиту psql добавлена поддержка поиска информации о настройках (pg_settings) при помощи команды «\dconfig».
  • Обезпеченo е използването на споделена памет за натрупване на статистика за работата на сървъра, което позволи да се избегне отделен процес за събиране на статистика и периодично изхвърляне на състоянието на диска.
  • Предоставлена возможность использования по умолчанию 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