September 25, 2025: PostgreSQL 18 Released!
This page in: Chinese / English / French / German / Greek / Hebrew / Indonesian / Italian / Japanese / Korean / Portuguese / Russian / Spanish / Thai / Ukrainian

PostgreSQL 18 Press Kit

Contents

Original Press Release

25 сентября 2025 г. — Сегодня Глобальная группа разработки PostgreSQL объявляет о выпуске PostgreSQL 18 — последней версии самой продвинутой в мире СУБД с открытым исходным кодом.

PostgreSQL 18 повышает производительность для рабочих нагрузок любого масштаба благодаря новой подсистеме ввода-вывода, которая показала до 3× ускорение чтения из хранилища, а также увеличивает число запросов, которые могут использовать индексы. Этот релиз делает обновления мажорной версии менее разрушительными, ускоряет сам процесс обновления и сокращает время, необходимое, чтобы после обновления выйти на ожидаемую производительность. Разработчики также выигрывают от функций PostgreSQL 18 — например, виртуальных вычисляемых столбцов, которые рассчитывают значения во время выполнения запроса, и дружественной к СУБД функции uuidv7(), обеспечивающей более быстрые индексацию и чтение UUID. Кроме того, PostgreSQL 18 упрощает интеграцию с системами единого входа (SSO) благодаря поддержке аутентификации OAuth 2.0.

«Усилия глобального сообщества разработчиков ПО с открытым исходным кодом формируют каждый релиз PostgreSQL и помогают предоставлять функции, отвечающие потребностям пользователей там, где находятся их данные, — сказал Джонатан Кац (Jonathan Katz), член основной команды PostgreSQL. — PostgreSQL 18 опирается на долгую и богатую историю проекта по предоставлению надежного и эффективного управления данными, при этом продолжая расширять спектр поддерживаемых рабочих нагрузок.»

PostgreSQL — инновационная система управления данными, известная своей надёжностью, устойчивостью и расширяемостью. Она развивается уже почти 30 лет в рамках открытого сообщества разработчиков и стала предпочтительной реляционной СУБД с открытым исходным кодом для организаций любого размера.

Появление асинхронного ввода-вывода (AIO)

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

PostgreSQL 18 внедряет новую подсистему асинхронного ввода-вывода (AIO), разработанную для устранения этого ограничения. AIO позволяет PostgreSQL отправлять несколько запросов ввода-вывода (I/O) параллельно, не дожидаясь последовательного завершения каждого. Это дополняет существующий readahead и улучшает общую пропускную способность. В PostgreSQL 18 поддерживаются операции AIO для последовательных сканирований, сканирований по битовой карте (bitmap) страниц кучи (heap) и вакуума. Сравнительное тестирование продемонстрировало прирост производительности до 3 раз в некоторых сценариях.

Новый параметр io_method позволяет выбирать между реализациями AIO, включая worker и io_uring, либо сохранить текущее поведение PostgreSQL с настройкой sync. При включении AIO появляется больше параметров, доступных для тонкой настройки — подробнее в документации.

Более быстрые обновления и улучшенная производительность после обновления

Ключевая особенность PostgreSQL — сбор и хранение статистики, которая помогает планировщику выбирать наиболее эффективный план запроса. До PostgreSQL 18 эта статистика не переносилась между экземплярами при обновлении мажорной версии, что могло вызывать заметную деградацию производительности запросов на нагруженных системах до завершения выполнения операции ANALYZE. В PostgreSQL 18 появилась возможность сохранять статистику планировщика при обновлении мажорной версии, что позволяет обновлённому кластеру быстрее выйти на ожидаемую производительность.

Кроме того, утилита pg_upgrade, предназначенная для обновления между мажорными версиями, получила ряд улучшений в PostgreSQL 18, включая более быстрые обновления, когда в базе много объектов, таких как таблицы и последовательности. Этот выпуск также позволяет pg_upgrade обрабатывать свои проверки параллельно в зависимости от настроек флага --jobs и добавляет флаг --swap, позволяющий менять местами каталоги обновления вместо копирования, клонирования или связывания файлов.

Улучшения производительности запросов и общие оптимизации

PostgreSQL 18 дополнительно повышает производительность запросов благодаря функциям, которые автоматически ускоряют выполнение рабочих нагрузок. В этом выпуске представлены функции поиска «skip scan» по многоколоночным индексам B-дерево, улучшающие время выполнения запросов, в которых отсутствует условие = для одной или нескольких первых колонок индекса. Также оптимизируются запросы с условиями OR в WHERE, позволяя использовать индекс и существенно сокращая время выполнения. Также внесены многочисленные улучшения в планирование и выполнение соединений таблиц PostgreSQL: от ускорения хеш-соединений (hash join) до возможности использования инкрементальных сортировок в соединениях слиянием (merge join). PostgreSQL 18 также поддерживает параллельное создание GIN-индексов, дополнив этим B-деревья и BRIN-индексы, которые уже поддерживали такую возможность.

Релиз также развивает поддержку аппаратного ускорения: добавлены инструкции ARM NEON и SVE центрального процессора для встроенной функции popcount, которую использует bit_count и другие внутренние механизмы.

Улучшение опыта разработчика

PostgreSQL 18 вводит виртуальные вычисляемые столбцы, значения которых вычисляются во время выполнения запроса вместо хранения на диске (это теперь поведение по умолчанию для вычисляемых столбцов). Кроме того, «хранимые» вычисляемые столбцы теперь поддерживаются в логической репликации.

В этой версии появилась возможность получать как прежние (OLD), так и текущие (NEW) значения в предложении RETURNING для команд INSERT, UPDATE, DELETE и MERGE. PostgreSQL 18 также добавляет генерацию UUIDv7 с помощью функции uuidv7(), позволяя создавать случайные UUID, упорядоченные по временной метке, что улучшает стратегии кэширования. Кроме того, в PostgreSQL 18 функция uuidv4() добавлена как псевдоним gen_random_uuid().

PostgreSQL 18 добавляет временные ограничения — ограничения по диапазонам — для PRIMARY KEY и UNIQUE с использованием конструкции WITHOUT OVERLAPS, а также для FOREIGN KEY с использованием PERIOD.

Наконец, стало проще создавать схему внешней таблицы на основе локальной: добавлена команда CREATE FOREIGN TABLE ... LIKE.

Улучшенная обработка текста

PostgreSQL 18 упрощает и ускоряет работу со строками благодаря нескольким улучшениям. В этом выпуске добавлена сортировка PG_UNICODE_FAST, которая обеспечивает полноценную семантику Unicode для преобразования регистра, помогая ускорить многие сравнения. Это касается функций upper и lower, а также новой функции casefold для регистронезависимых сравнений. Кроме того, PostgreSQL 18 теперь поддерживает выполнение сравнений LIKE над текстом с недетерминированной сортировкой, что упрощает сложный поиск по шаблону. В этом релизе также изменено поведение полнотекстового поиска: теперь он использует поставщика сортировки по умолчанию для кластера вместо принудительного использования libc. Это может потребовать пересоздания всех индексов полнотекстового поиска и pg_trgm после выполнения pg_upgrade.

Аутентификация и безопасность

PostgreSQL 18 добавляет аутентификацию oauth, позволяющую пользователям проходить проверку подлинности с использованием механизмов OAuth 2.0, поддерживаемых через расширения PostgreSQL. Кроме того, PostgreSQL 18 добавляет проверку режима FIPS и новый параметр ssl_tls13_ciphers для настройки наборов шифров TLS v1.3 на стороне сервера.

В этом выпуске прекращена поддержка аутентификации по паролю md5 (будет удалена в одном из будущих релизов). Если вам требуется парольная аутентификация в PostgreSQL, используйте SCRAM-аутентификацию. PostgreSQL 18 также поддерживает сквозную аутентификацию SCRAM с помощью postgres_fdw и dblink для аутентификации на удалённых экземплярах PostgreSQL. Кроме того, pgcrypto теперь поддерживает шифрование паролей с использованием SHA-2.

Репликация

PostgreSQL 18 поддерживает регистрацию конфликтов записи при логической репликации в журналах и в представлении pg_stat_subscription_stats. Кроме того, теперь команда CREATE SUBSCRIPTION по умолчанию применяет транзакции в несколько параллельных потоков, что может повысить производительность. Утилита pg_createsubscriber получила флаг --all, позволяющий создавать логические реплики для всех баз данных в экземпляре одной командой. Также PostgreSQL 18 позволяет автоматически удалять неактивные слоты репликации, чтобы избежать избыточного накопления файлов журнала предзаписи (WAL) на стороне публикующего сервера.

Обслуживание и наблюдаемость

PostgreSQL 18 улучшает стратегию очистки, путём упреждающей заморозки большего количества страниц во время регулярной очистки, что снижает накладные расходы и помогает в ситуациях, требующих агрессивной очистки.

PostgreSQL 18 добавляет больше информации в EXPLAIN, который предоставляет информацию о выполнении плана запроса, и, начиная с этого выпуска, теперь автоматически показывает, сколько буферов (основной единицы хранения данных) используется при выполнении EXPLAIN ANALYZE. Кроме того, EXPLAIN ANALYZE показывает количество обращений к индексу при его сканировании, а EXPLAIN ANALYZE VERBOSE включает статистику использования процессора, WAL и средним временам чтения. В представлении pg_stat_all_tables появилась дополнительная информация о времени, затраченном на очистку и связанные с ней операции, а также статистику ввода-вывода и использования WAL по каждому соединению.

Прочие заметные изменения

Базы данных, инициализированные с помощью initdb в PostgreSQL 18, теперь по умолчанию создаются с включёнными контрольными суммами страниц. Это может повлиять на обновления с кластеров, где контрольные суммы выключены: при использовании pg_upgrade для обновления таких кластеров потребуется создать новый кластер PostgreSQL 18 с опцией --no-data-checksums.

Кроме того, PostgreSQL 18 представляет новую версию (3.2) протокола взаимодействия (wire protocol) PostgreSQL — первое обновление протокола с момента выхода PostgreSQL 7.4 (2003 год). При этом libpq по умолчанию по-прежнему использует версию 3.0, пока клиенты (например, драйверы, пулеры, прокси) не добавят поддержку новой версии протокола.

Дополнительные возможности

Множество других новых функций и улучшений также вошли в PostgreSQL 18 и могут оказаться полезными для ваших сценариев. Полный список новых и изменённых возможностей приведён в примечаниях к релизу.

О PostgreSQL

PostgreSQL — наиболее продвинутая в мире СУБД с открытым исходным кодом, за которой стоит глобальное сообщество из тысяч пользователей, разработчиков, компаний и организаций. Начиная с первых шагов в Калифорнийском университете в Беркли более 40 лет назад, PostgreSQL развивается беспрецедентными темпами. Набор зрелых возможностей PostgreSQL не только сопоставим с ведущими проприетарными СУБД, но и превосходит их по части функций, расширяемости, безопасности и стабильности.

Ссылки

О PostgreSQL

PostgreSQL — наиболее продвинутая в мире СУБД с открытым исходным кодом, за которой стоит глобальное сообщество из тысяч пользователей, разработчиков, компаний и организаций. Начиная с первых шагов в Калифорнийском университете в Беркли более 40 лет назад, PostgreSQL развивается беспрецедентными темпами. Набор зрелых возможностей PostgreSQL не только сопоставим с ведущими проприетарными СУБД, но и превосходит их по части функций, расширяемости, безопасности и стабильности.

Learn more about PostgreSQL and participate in our community at PostgreSQL.org.

Подробнее о возможностях

Подробности вышеперечисленных и других функций см. на следующих ресурсах:

Где скачать

Существует несколько способов получить PostgreSQL 18, включая:

Windows, Linux, macOS и других платформ.

Другие инструменты и расширения доступны в PostgreSQL Extension Network.

Документация

PostgreSQL 18 поставляется с документацией в формате HTML и страницами man. Ознакомиться с документацией можно также онлайн в форматах HTML и PDF.

Лицензия

PostgreSQL распространяется по лицензии PostgreSQL, «разрешительной» лицензии, похожей на BSD. Эта лицензия, сертифицированная OSI, широко ценится за гибкость и дружелюбие к бизнесу, поскольку она не ограничивает использование PostgreSQL в коммерческих и проприетарных приложениях. В сочетании с поддержкой множества компаний и публичной открытостью кода наша лицензия делает PostgreSQL популярной среди вендоров, желающих встраивать СУБД в свои продукты без опасений насчёт сборов, «привязки к поставщику» или изменения условий лицензирования.

Контакты

Веб-сайт

Электронная почта

Изображения и логотипы

Postgres, PostgreSQL и логотип слоника (Slonik) — зарегистрированные товарные знаки PostgreSQL Community Association. Если вы хотите использовать эти знаки, необходимо соблюдать политику использования товарных знаков.

PostgreSQL Logo

Поддержка со стороны компаний и пожертвования

PostgreSQL пользуется поддержкой множества компаний, которые спонсируют разработчиков, предоставляют ресурсы для хостинга и оказывают финансовую помощь. См. страницу спонсоры для получения информации о некоторых из участников, поддерживающих проект.

Также существует большое сообщество компаний, предлагающих поддержку PostgreSQL — от независимых консультантов до транснациональных корпораций.

Если вы хотите сделать финансовый вклад в Глобальную группу разработки PostgreSQL (PostgreSQL Global Development Group) или в одну из признанных некоммерческих организаций сообщества, посетите страницу пожертвования.