The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз СУБД PostgreSQL 17

26.09.2024 20:16

После года разработки опубликована новая стабильная ветка СУБД 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 позволяет подробнее изучить причины нахождения активных сеансов в состоянии ожидания.


  1. Главная ссылка к новости (https://www.postgresql.org/abo...)
  2. OpenNews: Релиз СУБД PostgreSQL 16
  3. OpenNews: Рейтинг популярности СУБД. PostgreSQL назван СУБД 2023 года
  4. OpenNews: Оценка изменения производительности СУБД PostgreSQL за последние 15 лет
  5. OpenNews: В CVE опубликованы отчёты о ложных уязвимостях в curl, PostgreSQL и других проектах
  6. OpenNews: Опубликован стандарт SQL:2023
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61935-postgresql
Ключевые слова: postgresql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (10) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Walker (??), 20:33, 26/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавлена новая утилита pg_createsubscriber для преобразования физической реплики в новую логическую реплику.

    Годнота! Тут от Postgres Professional
    стрим смотрел про это, классно https://www.youtube.com/watch?v=peLXtGorl8A

     
  • 1.3, нах. (?), 20:47, 26/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > При выполнении операции VACUUM

    мляааааа... в 2009м году они его обещали ОТМЕНИТЬ!
    Окончательно и бесповоротно!

    Кстати, где тот хмырь что год назад обещал нам новый формат хранилища не требующий вакума, уже почти и вот-вот? Убили и съели?

     
     
  • 2.7, Аноним (7), 21:26, 26/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    не знаю, какой там хмырь что обещал, но постгрес без вакуума есть:

    https://github.com/orioledb/orioledb

    да, одним extension не обойтись - постгрес всё еще нужно патчить.

     
  • 2.11, Аноним (11), 23:36, 26/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так ведь вакуум - это следствие того, что сама БД - версионка.
    И оперирует версиями строк, что как бы еще в самом начале рассказывают.
     

  • 1.5, Цезий Родонович (?), 21:01, 26/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    UNOD пока не завезли, тогда пофиг будем на любом postgresql
     
  • 1.6, Аноним (6), 21:06, 26/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >в течение пяти лет

    Вот интересно как тут влияет длительность поддержки.
    Рейтинг популярности СУБД:
    https://db-engines.com/en/ranking

     
     
  • 2.8, голос из леса (?), 21:39, 26/09/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 2.9, Bonbon (?), 21:46, 26/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему МарияДБ сползла в подвал?
     
     
  • 3.10, Аноним (10), 22:22, 26/09/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Потому как время форумов и баз для сайтов прошло.
     
  • 3.12, IBM Db2 DBA (-), 00:47, 27/09/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру