Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Релиз СУБД 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").
  • Добавлен режим 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

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...