Po roku prac rozwojowych новая стабильная ветка СУБД . Обновления для новой ветки в течение пяти лет до ноября 2025 года.
:
- Реализована записей в индексах B-tree, позволившая поднять производительность запросов и сократить потребление дискового пространства при индексации записей с повторяющимися данными. Дедупликация производится через периодический запуск обработчика, выполняющего слияние групп повторяющихся кортежей и замену дубликтов на ссылки на одну хранимую копию.
- Повышена производительность запросов, в которых используются , (GROUPING SETS) или (партицированные) таблицы. Оптимизации связаны с использованием при агрегировании хэшей вместо фактических данных, что позволяет избежать размещения всех данных в памяти при обработке больших запросов. При секционировании расширено число ситуаций, при которых секции могут быть отброшены или объединены.
- Добавлена возможность использования , создаваемой при использовании команды «CREATE STATISTICS», для улучшения эффективности планирования запросов, содержащих условия «OR» или поиск в списках с использованием выражений «IN» или «ANY».
- Ускорена чистка индексов при выполнении операции за счёт распараллеливания сборки мусора в индексах. При помощи нового параметра «PARALLEL» администратор может определить число потоков, которые будут одновременно запускаться для VACUUM. Добавлена возможность инициирования автоматического выполнения VACUUM после вставки данных.
- Добавлена поддержка инкрементальной сортировки, позволяющей использовать данные, отсортированные на предыдущем этапе, для ускорения сортировки на последующих этапах обработки запроса. Для включения новой оптимизации в планировщике запросов предусмотрена настройка ««, которая включена по умолчанию.
- Добавлена возможность ограничения размера , позволяющих в автоматическом режиме гарантировать сохранение сегментов лога отложенной записи (WAL) до тех пор, пока они не будут получены всеми запасными серверами, принимающими реплики. Слоты репликации также не позволяют основному серверу удалить строки, которые могут привести к конфликтам, даже если запасной сервер отключён. При помощи параметра теперь можно ограничить максимальный размер WAL-файлов для предотвращения исчерпания места на диске.
- Расширены возможности мониторинга активности СУБД: в команде EXPLAIN обеспечен показ дополнительной статистики по использованию WAL-лога; в предоставлена возможность отследить состояние выполнения непрерывных бэкапов; в команде ANALYZE реализована индикация прогресса выполнения операции.
- Добавлена новая команда для проверки целостности резервных копий, создаваемых командой pg_basebackup.
- При работе с JSON с использованием операторов разрешено применение функции datetime() для преобразования форматов времени (строк ISO 8601 и родных типов времени PostgreSQL). Например, можно использовать конструкции «jsonb_path_query(‘[«2015-8-1», «2015-08-12»]’, ‘$[*] ? (@.datetime() < "2015-08-2".datetime())')" и "jsonb_path_query_array('["12:30", "18:40"]', '$[*].datetime("HH24:MI")')".
- Добавлена встроенная функция для генерации идентификаторов UUID v4.
- В системе секционирования реализована полная поддержка логической репликации и задаваемых выражением «BEFORE»
триггеров, работающих на уровне строк. - Синтаксис «» теперь допускает использование выражения «WITH TIES», позволяющего вернуть дополнительные строки, которые находятся в хвосте результирующего набора, получаемого после применения «ORDER BY».
- Реализована концепция заслуживающих доверия дополнений (««), которые могут быть установлены обычными пользователями, не имеющими прав администратора СУБД. Список подобных дополнений изначально предопределён и может быть расширен суперпользователем. В число заслуживающих доверия дополнений включены , , и т.п.
- В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована поддержка аутентификации на основе сертификатов. При использовании SCRAM-аутентификации клиентам разрешено запрашивать «» (channel binding).
Źródło: opennet.ru
