Pull to refresh

Вышла СУБД PostgreSQL 16

Reading time3 min
Views7.1K

Группа разработчиков PostgreSQL объявила о выпуске новой стабильной ветки базы данных с открытым исходным кодом PostgreSQL 16. Она предлагает множество функций, которые помогают разработчикам и администраторам развёртывать свои приложения с поддержкой данных. Обновления для PostgreSQL 16 будут выходить в течение пяти лет до ноября 2028 года.

Основные изменения и улучшения в PostgreSQL 16, согласно данным OpenNET:

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

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

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

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

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

  • внесены оптимизации и улучшена работа планировщика запросов;

  • реализована поддержка операции "IS JSON" для проверки типа выражения JSON, определённой в стандарте SQL:2023. Добавлены функции JSON_ARRAY() и JSON_ARRAYAGG() для создания массивов в формате JSON;

  • разрешено использование в числах символа подчёркивания для повышения наглядности цифровых литералов. Например "SELECT ... WHERE a > 1_000_000";

  • добавлена возможность указания шестнадцатеричных, двоичных и восьмеричных литералов. Например "SELECT 0x1538, 0o12450, 0b1010100111001";

  • в утилиту psql добавлена новая команда "\bind", позволяющая формировать параметризованные запросы и использовать переменные в запросах. Например "SELECT $1::int + $2::int \bind 1 2 \g";

  • расширена поддержка свойств локали "Collation", позволяющих задавать правила сортировки и методы сопоставления с учётом смысла символов (например, при сортировке цифровых значений учитывается наличие минуса и точки перед числом и разные виды написания, а при сравнении не принимается во внимание регистр символов и наличие знака ударения). По умолчанию теперь выполняется сборка с ICU-локалями ("ICU Collation") вместо локали libc;

  • расширены возможности для мониторинга производительности СУБД. Добавлено служебное представление "pg_stat_io" со статистикой, отражающей нагрузку на систему ввода/вывода различными бэкендами (background worker, autovacuum) и объектами;

  • в служебное представление "pg_stat_all_tables" добавлено новое поле с данными о времени последнего сканирования таблицы или индекса;

  • в модуле "auto_explain" появилась поддержка журналирования значений, передаваемых в параметризованные запросы. Повышена точность алгоритма отслеживания запросов, используемого в представлениях pg_stat_statements и pg_stat_activity;

  • в файлах pg_hba.conf и pg_ident.conf, содержащих настройки доступа и аутентификации, предоставлена возможность использования регулярных выражений для имён пользователей и БД, а также добавлены директивы "include", "include_if_exists" и "include_dir" для включения содержимого других файлов с настройками;

  • добавлены дополнительные параметры для управления защитой клиентского соединения: require_auth, для задания параметров аутентификации, допустимых при подключении к серверу; sslrootcert="system" для использования хранилища корневых сертификатов удостоверяющих центров, предоставляемого операционной системой клиента. Добавлена поддержка механизма делегированная учётных данных Kerberos, который может применяться для аутентифицированного подключения к внешним сервисам с использованием модулей postgres_fdw и dblink.

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 10: ↑9 and ↓1+9
Comments6

Other news