Релиз СУБД PostgreSQL 17

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3640
Зарегистрирован: 20.08.2022

#

Релиз СУБД PostgreSQL 17
Дата публикации:Thu, 26 Sep 2024 20:16:52 +0300




После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 17. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2029 года. Поддержка PostgreSQL 12.x, самой старой из поддерживаемых веток, будет прекращена 14 ноября.



Основные новшества:
  • При выполнении операции VACUUM (сборка мусора, чистка и упаковка дискового хранилища) задействована новая структура данных, потребляющая до 20 раз меньше памяти.
    Переход на новую структуру позволил ускорить выполнение операций VACUUM и сократить потребление совместно используемых ресурсов.

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

    Повышена производительность запросов с выражением "IN", если в них используются индексы на базе структуры B-tree. Реализована возможность параллельного построения индексов BRIN (Block Range Index). В планировщике запросов оптимизированы проверки "NOT NULL" и ускорена обработка обобщённых табличных выражений (Common Table Expression, CTE) определяемых при помощи SQL-команды "WITH". Обеспечено использование векторных процессорных инструкций (SIMD) для ускорения некоторых вычислений, например, для ускорения функции bit_count задействованы инструкции AVX-512.


    Реализована поддержка новых возможностей для работы с форматом JSON, определённых в стандарте SQL/JSON. Добавлена функция JSON-TABLE для преобразования данных из формата JSON в обычные таблицы PostgreSQL, а также новые операторы jsonpath для преобразования данных JSON в родные для PostgreSQL типы данных. Предложены новые функции для создания (JSON, JSON_SCALAR и JSON_SERIALIZE) и запроса (JSON_EXISTS, JSON_QUERY и JSON_VALUE) данных в формате JSON.

    Расширены возможности SQL-команды "MERGE", позволяющей создавать условные SQL-выражения, объединяющие в одном выражении операции INSERT, UPDATE и DELETE. Добавлена поддержка выражения RETURNING, позволяющего вычислять и возвращать значения на основе добавленных, обновлённых или удалённых строк. Реализована поддержка обновления представлений.
    Расширены возможности загрузки и экспорта данных в пакетном режиме.
    В команде COPY до двух раз увеличена скорость экспорта больших строк, оптимизировано копирование при совпадении исходной и целевых кодировок, добавлена опция ON_ERROR, позволяющая продолжить импорт после ошибок при вставке данных.

    Для секционированных таблиц добавлена возможность использования столбцов с уникальными идентификаторами и поддержка техники оптимизации запросов "Constraint exclusion".

    В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована возможность передачи на внешний сервер подзапросов "EXISTS" и "IN".

    Реализован встроенный платформонезависимый движок для обработки свойств локали "Collation", используемых для задания правил сортировки и методов сопоставления с учётом смысла символов (например, при сортировке цифровых значений учитывается наличие минуса и точки перед числом и разные виды написания, а при сравнении не принимается во внимание регистр символов и наличие знака ударения). Новый движок гарантирует единое поведение при сортировке результатов запросов, не зависящее от того, на какой платформе запускается PostgreSQL.

    В механизме логической репликации, позволяющем транслировать на другой сервер изменения, вносимые в БД в ходе добавления, удаления или обновления записей, упрощён процесс обновления СУБД. Если раньше при переходе на новый значительный выпуск приходилось удалять слоты логической репликации и повторно синхронизировать данные, то теперь можно обойтись без удаления слотов. Для отказоустойчивых конфигураций реализована возможность управления переключением на запасной сервер (failover) для логической репликации. Добавлена новая утилита pg_createsubscriber для преобразования физической реплики в новую логическую реплику.

    Добавлена новая опция "sslnegotiation" для прямого согласования защищённых TLS-соединений с использованием TLS-расширения ALPN.

    Реализована предопределённая роль pg_maintain, предоставляющая пользователю право выполнения операций, связанных с обслуживанием СУБД.
    В утилиту pg_basebackup, применяемую для создания резервных копий БД, добавлена поддержка инкрементальных бэкапов. Для реконструирования полного бэкапа из набора инкрементальных копий предложена новая утилита pg_combinebacku. В утилиту pg_dump добавлена опция "--filter" для выбора включаемых в дамп объектов.

    При анализе запросов при помощи SQL-команды "EXPLAIN" реализован вывод времени, потраченного на чтение и запись локальных блоков при вводе/выводе. В команду "EXPLAIN" также добавлены две новые опции "MEMORY" и "SERIALIZE", при помощи которых можно определить размер использованной памяти и время, потраченное на преобразование данных для передачи по сети.

    Обеспечена индикация прогресса выполнения операции VACUUM с индексами.

    Добавлено системное представление pg_wait_events, которое в сочетании с представлением pg_stat_activity позволяет подробнее изучить причины нахождения активных сеансов в состоянии ожидания.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61935

Жизнь за Нер'зула!

Ответить