From: Jonathan S. Katz Date: Wed, 24 Sep 2025 14:40:55 +0000 (-0400) Subject: PostgreSQL 18 - Russian X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=78c92ba50e4cf84404a97b5bb4a5bc5d2f69f7ec;p=press.git PostgreSQL 18 - Russian Author: Michael Goldberg Author: Vadim Iatsenko --- diff --git a/releases/18/release.ru.md b/releases/18/release.ru.md new file mode 100644 index 0000000..6df7ad3 --- /dev/null +++ b/releases/18/release.ru.md @@ -0,0 +1,248 @@ +25 сентября 2025 г. — Сегодня [Глобальная группа разработки PostgreSQL](https://www.postgresql.org) +объявляет о выпуске [PostgreSQL 18](https://www.postgresql.org/docs/18/release-18.html) — +последней версии самой продвинутой в мире СУБД с открытым исходным кодом. + +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`](https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-IO-METHOD) +позволяет выбирать между реализациями AIO, включая `worker` и `io_uring`, либо сохранить текущее поведение PostgreSQL +с настройкой `sync`. При включении AIO появляется больше параметров, доступных для тонкой настройки — +[подробнее в документации](https://www.postgresql.org/docs/18/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-IO). + +### Более быстрые обновления и улучшенная производительность после обновления + +Ключевая особенность PostgreSQL — сбор и хранение [статистики](https://www.postgresql.org/docs/18/planner-stats.html), +которая помогает планировщику выбирать наиболее эффективный план запроса. До PostgreSQL 18 эта статистика не переносилась +между экземплярами при [обновлении мажорной версии](https://www.postgresql.org/docs/18/pgupgrade.html), что могло вызывать +заметную деградацию производительности запросов на нагруженных системах до завершения выполнения операции +[`ANALYZE`](https://www.postgresql.org/docs/18/sql-analyze.html). В PostgreSQL 18 появилась возможность сохранять +статистику планировщика при обновлении мажорной версии, что позволяет обновлённому кластеру быстрее выйти на ожидаемую производительность. + +Кроме того, утилита [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html), предназначенная для обновления между мажорными версиями, +получила ряд улучшений в PostgreSQL 18, включая более быстрые обновления, когда в базе много объектов, таких как таблицы и последовательности. +Этот выпуск также позволяет `pg_upgrade` обрабатывать свои проверки параллельно в зависимости от настроек флага `--jobs` и добавляет флаг `--swap`, позволяющий +менять местами каталоги обновления вместо копирования, клонирования или связывания файлов. + +### Улучшения производительности запросов и общие оптимизации + +PostgreSQL 18 дополнительно повышает производительность запросов благодаря функциям, которые автоматически ускоряют выполнение рабочих нагрузок. +В этом выпуске представлены функции поиска «skip scan» по [многоколоночным индексам B-дерево](https://www.postgresql.org/docs/18/indexes-multicolumn.html), +улучшающие время выполнения запросов, в которых отсутствует условие `=` для одной или нескольких первых колонок индекса. +Также оптимизируются запросы с условиями `OR` в `WHERE`, позволяя использовать индекс и существенно сокращая время выполнения. +Также внесены многочисленные улучшения в планирование и выполнение соединений таблиц PostgreSQL: от ускорения хеш-соединений (hash join) до возможности использования инкрементальных сортировок в соединениях слиянием (merge join). PostgreSQL 18 также поддерживает параллельное создание +[GIN-индексов](https://www.postgresql.org/docs/18/gin.html), дополнив этим [B-деревья](https://www.postgresql.org/docs/current/btree.html) и +[BRIN-индексы](https://www.postgresql.org/docs/current/brin.html), которые уже поддерживали такую возможность. + +Релиз также развивает поддержку аппаратного ускорения: добавлены инструкции ARM NEON и SVE центрального процессора для встроенной функции `popcount`, +которую использует [`bit_count`](https://www.postgresql.org/docs/18/functions-bitstring.html) и другие внутренние механизмы. + +### Улучшение опыта разработчика + +PostgreSQL 18 вводит [виртуальные вычисляемые столбцы](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED), +значения которых вычисляются во время выполнения запроса вместо хранения на диске (это теперь поведение по умолчанию для вычисляемых столбцов). +Кроме того, «хранимые» вычисляемые столбцы теперь поддерживаются в логической репликации. + +В этой версии появилась возможность получать как прежние (`OLD`), так и текущие (`NEW`) значения в +[предложении `RETURNING`](https://www.postgresql.org/docs/18/dml-returning.html) для команд `INSERT`, `UPDATE`, `DELETE` и `MERGE`. +PostgreSQL 18 также добавляет генерацию UUIDv7 с помощью функции [`uuidv7()`](https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE), +позволяя создавать случайные UUID, упорядоченные по временной метке, что улучшает стратегии кэширования. +Кроме того, в PostgreSQL 18 функция [`uuidv4()`](https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE) +добавлена как псевдоним `gen_random_uuid()`. + +PostgreSQL 18 добавляет [временные ограничения](https://www.postgresql.org/docs/devel/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE) +— ограничения по диапазонам — для `PRIMARY KEY` и `UNIQUE` с использованием конструкции `WITHOUT OVERLAPS`, +а также для `FOREIGN KEY` с использованием `PERIOD`. + +Наконец, стало проще создавать схему внешней таблицы на основе локальной: добавлена команда +[`CREATE FOREIGN TABLE ... LIKE`](https://www.postgresql.org/docs/18/sql-createforeigntable.html). + +### Улучшенная обработка текста + +PostgreSQL 18 упрощает и ускоряет работу со строками благодаря нескольким улучшениям. В этом выпуске добавлена сортировка +[`PG_UNICODE_FAST`](https://www.postgresql.org/docs/18/collation.html#COLLATION-MANAGING-STANDARD), +которая обеспечивает полноценную семантику Unicode для преобразования регистра, помогая ускорить многие сравнения. +Это касается функций `upper` и `lower`, а также новой функции +[`casefold`](https://www.postgresql.org/docs/18/functions-string.html#FUNCTIONS-STRING-OTHER) для регистронезависимых сравнений. +Кроме того, PostgreSQL 18 теперь поддерживает выполнение сравнений `LIKE` над текстом с +[недетерминированной сортировкой](https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC), +что упрощает сложный поиск по шаблону. В этом релизе также изменено поведение +[полнотекстового поиска](https://www.postgresql.org/docs/18/textsearch.html): теперь он использует поставщика сортировки по умолчанию +для кластера вместо принудительного использования libc. Это может потребовать пересоздания всех индексов +[полнотекстового поиска](https://www.postgresql.org/docs/18/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX) +и [`pg_trgm`](https://www.postgresql.org/docs/18/pgtrgm.html#PGTRGM-INDEX) после выполнения +[`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html). + +### Аутентификация и безопасность + +PostgreSQL 18 добавляет [аутентификацию `oauth`](https://www.postgresql.org/docs/18/auth-oauth.html), +позволяющую пользователям проходить проверку подлинности с использованием механизмов OAuth 2.0, поддерживаемых через расширения PostgreSQL. +Кроме того, PostgreSQL 18 добавляет проверку режима [FIPS](https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS) +и новый параметр [`ssl_tls13_ciphers`](https://www.postgresql.org/docs/18/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS) +для настройки наборов шифров TLS v1.3 на стороне сервера. + +В этом выпуске прекращена поддержка аутентификации по паролю `md5` (будет удалена в одном из будущих релизов). +Если вам требуется парольная аутентификация в PostgreSQL, используйте [SCRAM-аутентификацию](https://www.postgresql.org/docs/18/auth-password.html). +PostgreSQL 18 также поддерживает сквозную аутентификацию SCRAM с помощью [`postgres_fdw`](https://www.postgresql.org/docs/18/postgres-fdw.html) и +[`dblink`](https://www.postgresql.org/docs/18/dblink.html) для аутентификации на +удалённых экземплярах PostgreSQL. +Кроме того, [`pgcrypto`](https://www.postgresql.org/docs/18/pgcrypto.html) теперь поддерживает [шифрование паролей с использованием SHA-2](https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS). + +### Репликация + +PostgreSQL 18 поддерживает регистрацию конфликтов записи при логической репликации +в журналах и в представлении +[`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS). +Кроме того, теперь команда [`CREATE SUBSCRIPTION`](https://www.postgresql.org/docs/18/sql-createsubscription.html) по умолчанию применяет +транзакции в несколько параллельных потоков, что может повысить производительность. Утилита [`pg_createsubscriber`](https://www.postgresql.org/docs/18/app-pgcreatesubscriber.html) +получила флаг `--all`, позволяющий создавать логические реплики для всех баз данных +в экземпляре одной командой. +Также PostgreSQL 18 позволяет автоматически +[удалять неактивные слоты репликации](https://www.postgresql.org/docs/18/runtime-config-replication.html#GUC-IDLE-REPLICATION-SLOT-TIMEOUT), +чтобы избежать избыточного накопления файлов журнала предзаписи (WAL) на стороне публикующего сервера. + +### Обслуживание и наблюдаемость + +PostgreSQL 18 улучшает стратегию [очистки](https://www.postgresql.org/docs/18/routine-vacuuming.html), +путём упреждающей заморозки большего количества страниц во время регулярной очистки, что снижает +накладные расходы и помогает в ситуациях, требующих агрессивной очистки. + +PostgreSQL 18 добавляет больше информации в [`EXPLAIN`](https://www.postgresql.org/docs/18/using-explain.html), +который предоставляет информацию о выполнении плана запроса, и, начиная с этого выпуска, +теперь автоматически показывает, сколько буферов (основной единицы хранения данных) +используется при выполнении `EXPLAIN ANALYZE`. +Кроме того, `EXPLAIN ANALYZE` показывает количество обращений к индексу при его сканировании, а `EXPLAIN ANALYZE VERBOSE` +включает статистику использования процессора, WAL и средним временам чтения. В представлении +[`pg_stat_all_tables`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW) +появилась дополнительная информация о времени, затраченном на очистку и связанные с ней операции, а также статистику ввода-вывода и использования WAL по каждому соединению. + +### Прочие заметные изменения + +Базы данных, инициализированные с помощью [`initdb`](https://www.postgresql.org/docs/18/app-initdb.html) в PostgreSQL 18, +теперь по умолчанию создаются с включёнными контрольными суммами страниц. Это может повлиять на обновления с кластеров, +где контрольные суммы выключены: при использовании [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html) +для обновления таких кластеров потребуется создать новый кластер PostgreSQL 18 +с опцией `--no-data-checksums`. + +Кроме того, PostgreSQL 18 представляет новую версию (3.2) протокола взаимодействия (wire protocol) PostgreSQL — +первое обновление протокола с момента выхода PostgreSQL 7.4 (2003 год). +При этом [`libpq`](https://www.postgresql.org/docs/18/libpq-connect.html) по умолчанию +по-прежнему использует версию 3.0, пока клиенты (например, драйверы, пулеры, прокси) +не добавят поддержку новой версии протокола. + +### Дополнительные возможности + +Множество других новых функций и улучшений также вошли в PostgreSQL 18 и могут оказаться полезными для ваших сценариев. +Полный список новых и изменённых возможностей приведён в +[примечаниях к релизу](https://www.postgresql.org/docs/18/release-18.html). + +### О PostgreSQL + +[PostgreSQL](https://www.postgresql.org) — наиболее продвинутая в мире СУБД с открытым исходным кодом, +за которой стоит глобальное сообщество из тысяч пользователей, разработчиков, компаний и организаций. +Начиная с первых шагов в Калифорнийском университете в Беркли более 40 лет назад, +PostgreSQL развивается беспрецедентными темпами. Набор зрелых возможностей PostgreSQL не только сопоставим +с ведущими проприетарными СУБД, но и превосходит их по части функций, расширяемости, безопасности и стабильности. + +### Ссылки + +* [Скачать](https://www.postgresql.org/download/) +* [Примечания к релизу](https://www.postgresql.org/docs/18/release-18.html) +* [Пресс-кит](https://www.postgresql.org/about/press/) +* [Страница безопасности](https://www.postgresql.org/support/security/) +* [Политика версионирования](https://www.postgresql.org/support/versioning/) +* [Контакты](https://www.postgresql.org/about/contact/) +* [Пожертвования](https://www.postgresql.org/about/donate/) + +## Подробнее о возможностях + +Подробности вышеперечисленных и других функций см. на следующих ресурсах: + +* [Примечания к релизу](https://www.postgresql.org/docs/18/release-18.html) +* [Матрица функциональностей](https://www.postgresql.org/about/featurematrix/) + +## Где скачать + +Существует несколько способов получить PostgreSQL 18, включая: + +* [Официальные сборки](https://www.postgresql.org/download/), в том числе для + [Windows](https://www.postgresql.org/download/windows/), + [Linux](https://www.postgresql.org/download/), + [macOS](https://www.postgresql.org/download/macosx/) и других платформ. +* [Исходный код](https://www.postgresql.org/ftp/source/v18.0) + +Другие инструменты и расширения доступны в +[PostgreSQL Extension Network](http://pgxn.org/). + +## Документация + +PostgreSQL 18 поставляется с документацией в формате HTML и страницами man. Ознакомиться с документацией можно также онлайн +в форматах [HTML](https://www.postgresql.org/docs/18/) и +[PDF](https://www.postgresql.org/files/documentation/pdf/18/postgresql-18-US.pdf). + +## Лицензия + +PostgreSQL распространяется по [лицензии PostgreSQL](https://www.postgresql.org/about/licence/), +«разрешительной» лицензии, похожей на BSD. Эта +[лицензия, сертифицированная OSI](http://www.opensource.org/licenses/postgresql/), +широко ценится за гибкость и дружелюбие к бизнесу, поскольку она не ограничивает использование PostgreSQL +в коммерческих и проприетарных приложениях. В сочетании с поддержкой множества компаний и публичной +открытостью кода наша лицензия делает PostgreSQL популярной среди вендоров, желающих встраивать СУБД в свои продукты +без опасений насчёт сборов, «привязки к поставщику» или изменения условий лицензирования. + +## Контакты + +Веб-сайт + +* [https://www.postgresql.org/](https://www.postgresql.org/) + +Электронная почта + +* [press@postgresql.org](mailto:press@postgresql.org) + +## Изображения и логотипы + +Postgres, PostgreSQL и логотип слоника (Slonik) — зарегистрированные товарные знаки +[PostgreSQL Community Association](https://www.postgres.ca). +Если вы хотите использовать эти знаки, необходимо соблюдать +[политику использования товарных знаков](https://www.postgresql.org/about/policies/trademarks/). + +## Поддержка со стороны компаний и пожертвования + +PostgreSQL пользуется поддержкой множества компаний, которые спонсируют разработчиков, предоставляют ресурсы для хостинга +и оказывают финансовую помощь. См. страницу [спонсоры](https://www.postgresql.org/about/sponsors/) для получения информации о некоторых +из участников, поддерживающих проект. + +Также существует большое сообщество +[компаний, предлагающих поддержку PostgreSQL](https://www.postgresql.org/support/professional_support/) — +от независимых консультантов до транснациональных корпораций. + +Если вы хотите сделать финансовый вклад в Глобальную группу разработки PostgreSQL (PostgreSQL Global +Development Group) или в одну из признанных некоммерческих +организаций сообщества, посетите страницу [пожертвования](https://www.postgresql.org/about/donate/).