PostgreSQL 16 поставляется с улучшениями производительности, функциями и многим другим.

PostgreSQL

PostgreSQL, также называемый Postgres, представляет собой объектно-ориентированную систему управления реляционными базами данных с открытым исходным кодом.

После 11 месяцев разработки был анонсирован релиз новой версии PostgreSQL 16. Эта новая стабильная ветка СУБД будет получать обновления в течение пяти лет, до ноября 2028 года. Это также знаменует собой конец ветки PostgreSQL 11.x, старейшей из поддерживаемых в настоящее время веток, которая будет прекращена 9 ноября.

Для тех, кто еще не знаком с PostgreSQL, это бесплатная реляционная система управления базами данных (СУБД) с открытым исходным кодом , которая стремится предложить базу данных, основанную на расширяемости и соответствии техническим стандартам.

Основные новые возможности PostgreSQL 16

В новой версии PostgreSQL 16 расширены инструменты контроля доступа для логической репликации. Например, добавлена ​​новая предопределенная функция "pg_create_subscription", позволяющая предоставлять пользователям право создавать новые подписки.

В клиентскую часть добавлена ​​поддержка балансировки нагрузки с использованием стандартной библиотеки libpq. Балансировка нагрузки позволяет клиенту подключаться к различным хостам, которые могут выбираться в определенном или случайном порядке. Если хост недоступен, предпринимается попытка подключения к другому серверу. После установления соединения запросы в рамках сессии отправляются на выбранный сервер.

Кроме того, были внесены оптимизации и улучшена работа планировщика запросов, обеспечивающая параллельную обработку операций объединения таблиц «ПОЛНОЕ» и «ПРАВОЕ ОБЪЕДИНЕНИЕ».

В PostgreSQL 16 также расширена поддержка локали "Collation" , которая позволяет устанавливать правила сортировки и методы сравнения на основе значения символов. По умолчанию теперь компиляция выполняется с использованием локали ICU вместо локали libc.

Улучшена производительность логической репликации , поскольку реализована возможность использования одновременно работающих процессоров , а также возможность использования B-деревьевых индексов для таблиц без первичных ключей, что исключает необходимость последовательного сканирования при поиске записей, и ускорена начальная синхронизация некоторых таблиц в бинарном формате.

Еще одно усовершенствование механизма логической репликации заключается в том, что теперь он позволяет передавать на другой сервер изменения, внесенные в базу данных при добавлении, удалении или обновлении записей; он также расширен возможностью репликации изменений с резервного сервера.

Также была добавлена ​​поддержка двунаправленной логической репликации таблиц , позволяющая синхронизировать изменения между двумя таблицами на разных серверах. Возможности репликации, добавленные в PostgreSQL 16, позволяют создавать многосерверные конфигурации (режим актив-актив), в которых операции INSERT, UPDATE и DELETE могут выполняться одновременно.

Среди других заметных изменений можно отметить следующие:

  • Оптимизировано использование операций «ПРАВОЕ СОЕДИНЕНИЕ» и «ВНЕШНЕЕ СОЕДИНЕНИЕ» для поиска строк, которых нет в объединенной таблице («антиобъединение»).
  • Повышена эффективность плана оптимизации для запросов, в которых используются агрегатные функции в сочетании с предложениями DISTINCT или ORDER BY.
  • Инкрементная сортировка используется для ускорения запросов SELECT DISTINCT.
    Стратегия работы VACUUM была улучшена, чтобы уменьшить количество ситуаций, требующих блокировки всей таблицы.
  • В архитектурах x86 и ARM реализованы инструкции векторного процессора (SIMD) для ускорения обработки строк ASCII, операций с данными JSON, а также выполнения поиска в массиве и субтранзакций.
  • Модуль «auto_explain» теперь включает поддержку протоколирования значений, передаваемых в параметризованные запросы.
  • Повышена точность алгоритма отслеживания запросов, используемого в представлениях pg_stat_statements и pg_stat_activity.
  • Расширены возможности мониторинга производительности СУБД. Добавлено сервисное представление » pg_stat_io » со статистикой, отражающей нагрузку на систему ввода-вывода различными бэкендами (фоновый работник, автоочистка и т.д.) и объектами.
  • В представление сервиса добавлено новое поле «pg_stat_all_tables» с информацией о времени последнего сканирования таблицы или индекса.

Наконец, если вас интересует более подробная информация, вы можете найти ее по следующей ссылке.


Добавить в качестве предпочтительного источника в Google