Выпущена версия PostgreSQL 18 с ускорением ввода-вывода до 3 раз и упрощенным обновлением

СУБД с открытым исходным кодом PostgreSQL 18 обеспечивает в 3 раза более быстрый ввод-вывод, упрощает обновление, поддерживает аутентификацию OAuth 2.0 и предлагает новые инструменты для разработчиков.
Спустя год после предыдущего крупного 17-го выпуска Глобальная группа разработчиков PostgreSQL анонсировала PostgreSQL 18 — новейшую версию самой продвинутой в мире базы данных с открытым исходным кодом, в которой реализован ряд улучшений, в первую очередь совершенно новая подсистема асинхронного ввода-вывода, которая может повысить производительность при определенных рабочих нагрузках в три раза.
До сих пор PostgreSQL полагался на упреждающее чтение операционной системы для доступа к хранилищу, что зачастую не позволяло в полной мере предугадать потребности базы данных. Благодаря асинхронному вводу-выводу PostgreSQL 18 может одновременно отправлять несколько запросов на ввод-вывод, сокращая время ожидания и повышая пропускную способность. Это изменение влияет на последовательное сканирование, сканирование растровой кучи и даже на операции вакуумирования.
Администраторы могут выбирать между методами worker и io_uring или, при желании, использовать традиционный синхронный режим.
Обновления — ещё одна важная составляющая этого выпуска. В PostgreSQL 18 статистика планировщика сохраняется при обновлении до основной версии, а это значит, что системы не будут так сильно замедляться в ожидании завершения перестроения данных ANALYZE. Инструмент pg_upgrade
также был улучшен за счёт более быстрой обработки объектов, поддержки параллельных проверок с помощью --jobs
и новой опции --swap
для сокращения количества файловых операций.
Что касается производительности, в этом выпуске представлен поиск с «пропуском сканирования» для многоколоночных индексов, благодаря чему запросы, в которых не используются ведущие столбцы индекса, выполняются быстрее. Запросы, в которых в условиях WHERE используется оператор OR, также теперь могут выигрывать от оптимизации индексов. Хешированные соединения, соединения слиянием и создание индексов GIN были оптимизированы, а пользователи аппаратного обеспечения получили поддержку инструкций ARM NEON и SVE.
Что касается разработчиков, то в PostgreSQL 18 появились виртуальные сгенерированные столбцы, которые вычисляют значения во время запроса, а не сохраняют их, а также поддержка UUIDv7 для идентификаторов с упорядоченными временными метками. Логическая репликация также стала более гибкой: теперь реплицируются сохранённые сгенерированные столбцы и появились новые параметры отчётности о конфликтах при записи.
Кроме того, стоит отметить добавленную поддержку аутентификации OAuth 2.0, проверку режима FIPS и улучшенную конфигурацию шифров TLS 1.3. В этом выпуске также не рекомендуется использовать аутентификацию по паролю MD5, пользователям рекомендуется перейти на SCRAM. Улучшения в области репликации включают параллельную потоковую передачу по умолчанию и возможность автоматического удаления неиспользуемых слотов репликации.
Наконец, были обновлены инструменты наблюдения и обслуживания: от более подробных результатов EXPLAIN до улучшенного поведения функции vacuum, которая заранее замораживает больше страниц. В PostgreSQL 18 по умолчанию включены контрольные суммы страниц в новых кластерах, а также представлена версия 3.2 сетевого протокола PostgreSQL — первое обновление протокола с 2003 года.
Ознакомьтесь с официальным анонсом: https://www.postgresql.org/about/news/postgresql-18-released-3142/, чтобы узнать о них подробнее, или изучите релиз-заметки: https://www.postgresql.org/docs/18/release-18.html, чтобы получить полное представление обо всех нововведениях.
Редактор: AndreyEx