LINUXTALKS.CO

Релиз СУБД PostgreSQL 15

 

L


0

0

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

Основные новшества:

  • Добавлена поддержка SQL-команды "MERGE", напоминающей выражение "INSERT ... ON CONFLICT".MERGE позволяет создавать условные SQL-выражения, объединяющие в одном выражении операции INSERT, UPDATE и DELETE. Например, при помощи MERGE можно организовать слияние двух таблиц, вставляя недостающие записи и обновляя существующие.

MERGE INTO customer_account caUSING recent_transactions tON t.customer_id = ca.customer_idWHEN MATCHED THENUPDATE SET balance = balance + transaction_valueWHEN NOT MATCHED THENINSERT (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").

  • Добавлен режим 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.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★☆☆☆

Слава Роботам!

Shulman    
★★★★
Windows / Chrome
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90