Релиз PostgreSQL 17
10:50, 30.09.2024
Релиз PostgreSQL 17 состоялся в сентябре 2024 года, а обновление текущей версии будет выходить до ноября 2029 года. Основные дополнения и изменения в проекте следующие:
- Добавлены новые возможности для работы с JSON. Если же говорить непосредственно о функциональности, то появились операторы jsonpath для того, чтобы можно было преобразовать данные с родного формата в PostgreSQL, кроме того, стала доступной функция JSON-TABLE, которая необходима для конвертации данных в PostgreSQL. Также введены новые функции для запроса и создания данных JSON формата;
- Изменен подход в структуре данных операции VACUUM. Теперь во время выполнения операции будет использоваться намного меньше ресурсов и таким образом скорость выполнения будет увеличена;
- Если в запросе с IN применяется индекс на базе B-tree в таком варианте будет существенно повышена эффективность. В индексах BRIN будет доступно параллельное построение. Немного ускорена обработка CTE при использовании команды WITH, и также оптимизированы NOT NULL запросы. SIMD будет использовано для ускорения определенных вычислений;
- Немного изменена команда MERGE с помощью которой создаются условные выражения. Появилась поддержка RETURNING, выражение выводит значение на базе внесенных изменений или удалений;
- Улучшена пропускная способность в системах с большим количеством одновременных запросов. Для достижения оптимизации был изменен код лога WAL. В операции ANALYZE была увеличена скорость обработки данных в таблицах для обновления статистических данных;
- В пакетном режиме были внесены некоторые изменения, касающиеся загрузки/экспорта данных. Также в команде COPY удалось повысить скорость экспорта, немного оптимизировано копирование и была добавлена команда ON_ERROR - она обеспечивает продолжение импорта, даже если произошла ошибка при загрузке некоторых данных;
- Упрощено обновление СУБД, при любых изменениях в БД механизм логической репликации значительно упрощен. Ранее процесс транслирования включал в себя удаление слотов репликации, то теперь этот этап аннулирован. Сейчас для логической репликации достаточно просто переключиться на запасной сервер. Также, вышла утилита pg_createsubscriber, которая нужна для преобразования в логическую реплику;
- В секционированных таблицах появилась поддержка оптимизации Constraint exclusion и стало возможно задавать уникальные идентификаторы для столбцов;
- В команде EXPLAIN добавлена информация о расходе памяти и времени при вводе и выводе. С помощью опций SERIALIZE и MEMORY возможно извлечь точные сведения о времени и использованной памяти на изменение данных для последующей передачи;
- Появилась возможность передачи на внешний сервер запросов IN/EXISTS во внешних таблицах postgres_fdw;
- Добавлена поддержка инкрементальных бэкапов в утилите pg_basebackup. Для того чтобы восстановить бэкап из множества копий можно теперь применять pg_combinebackup. И с помощью опции filter в pg_dump стало возможным выбирать необходимые объекты;
- Добавлена роль pg_maintain, дающая право на управление и обслуживание СУБД;
- Для выявления причины пребывания данных в состоянии ожидания теперь можно использовать pg_wait_events вместе с pg_stat_activity.