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 лет в рамках открытого сообщества разработчиков и стала предпочтительной реляционной СУБД с открытым исходным кодом для организаций любого размера.
Ранее для ускорения доступа к данным 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 — наиболее продвинутая в мире СУБД с открытым исходным кодом, за которой стоит глобальное сообщество из тысяч пользователей, разработчиков, компаний и организаций. Начиная с первых шагов в Калифорнийском университете в Беркли более 40 лет назад, 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 пользуется поддержкой множества компаний, которые спонсируют разработчиков, предоставляют ресурсы для хостинга и оказывают финансовую помощь. См. страницу спонсоры для получения информации о некоторых из участников, поддерживающих проект.
Также существует большое сообщество компаний, предлагающих поддержку PostgreSQL — от независимых консультантов до транснациональных корпораций.
Если вы хотите сделать финансовый вклад в Глобальную группу разработки PostgreSQL (PostgreSQL Global Development Group) или в одну из признанных некоммерческих организаций сообщества, посетите страницу пожертвования.