Всемирная группа разработки PostgreSQL объявила сегодня о выходе PostgreSQL 14, новейшей версии лидирующей реляционной системы управления базами данных (СУБД) с открытым исходным кодом.
PostgreSQL 14 содержит широкий спектр возможностей, призванных помочь разработчикам и администраторам выпускать активно работающие с данными приложения. PostgreSQL продолжает развивать инновации в области работы со сложными типами данных, включая более удобный доступ к JSON и поддержку несмежных интервалов данных. Улучшения производительности и нагрузок, ориентированных на работу с распределёнными данными, традиционно присутствуют и в новом релизе: в этот раз акцент сделан на следующее:
"Новейший релиз PostgreSQL развивает возможности наших пользователей работать с нагрузками на базы данных в больших масштабах, а также улучшает наблюдаемость и привносит новый функционал, помогающий разработчикам приложений, — комментирует Магнус Хагандер (Magnus Hagander), член Основной Команды (Core Team) PostgreSQL, – Выпуск PostgreSQL 14 свидетельствует о приверженности глобального PostgreSQL-сообщества подходу, при котором внимательно анализируется обратная связь от пользователей системы и продолжается развитие инновационного продукта в области баз данных, используемого и в малых, и в крупных организациях."
PostgreSQL, инновационная система управления данными, известная своей надёжностью и производительностью, пользуется плодами 26 лет открытой разработки, осуществляемой глобальным сообществом разработчиков). В результате сегодня во всём мире организации любого размера отдают предпочтение PostgreSQL как СУБД с открытым иходным кодом.
Поддержка JSON появилась в PostgreSQL впервые в версии 9.2, при этом получение различных значений из JSON-данных осуществлялось с помощью уникального синтаксиса. В PostgreSQL 14 же становится возможным осуществлять доступ к частям JSON с помощью адресации подобной той, которая используется для массивов. Например, теперь можно использовать запросы вроде SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release'];
. Это делает синтаксис запросов PostgreSQL соответствующим ожиданиям пользователей, работающих с JSON в других системах. Фреймворк адресации JSON, появившийся в PostgreSQL 14, может быть использользован для других данных с вложенной структурой — и это уже сделано для типа данных hstore.
Интервальные типы данных, также впервые появившиеся в PostgreSQL 9.2, теперь поддерживают интервалы с прерываниями — это достигается за счёт появления "мульти-интервальных" типов данных. Мульти-интервал — это упорядоченный список непересекающихся интервалов, который позволяет разработчикам создавать более простые запросы, когда речь идёт о сложных последовательностях интервалов. "Родные" интервальные типы данных PostgreSQL — интервалы дат, времени, чисел — теперь поддерживают этот функционал, а остальные типы могут быть расширены, чтобы его задействовать.
В PostgreSQL 14 осуществлён существенный прорыв в оптимизации для нагрузок, использующих большое количество соединений — некоторые бенчмарки показывают улучшение производительности в 2 раза. Также этот релиз привносит очередные оптимизации для индексов типа "B-дерево" (основной тип индексов, используемый по умолчанию): существенно уменьшены темпы распухания (bloat) индексов в ситуациях с частыми обновлениями.
В PostgreSQL 14 можно использовать конвейерный режим запросов к базе данных, что может существенно улучшить производительность в ситуациях с высокими задержками соединения, а также при нагрузках с большим количеством легковесных операций записи (INSERT
/UPDATE
/DELETE
). Так как эта возможность реализована на "клиентской" стороне, вы можете использовать конвейерный режим с любой современной версией PostgreSQL при условии, что применяется клиенское ПО версии 14 или же драйвер работы с PostgreSQL скомпилирован с поддержкой библиотеки libpq версии 14.
Распределенные базы данных PostgreSQL выиграют от перехода на версию 14. При использовании логической репликации PostgreSQL теперь может отправлять подписчикам информацию о незавершённых транзакциях, что приводит к значительным улучшениям производительности при применении больших транзакций на подписчиках. PostgreSQL 14 также содержит несколько оптимизаций производительности в системе логического декодирования, что усиливает возможности логической репликации.
Обёртки сторонних данных (foreign data wrappers), которые используются для работы с объединёнными PostgreSQL базами данных и другими системами, в PostgreSQL 14 могут задействовать параллелизм выполнения запросов. В этом релизе данная возможность реализована в postgres_fdw
, обёртке сторонних данных для работы с внешними базами данных PostgreSQL.
В дополнение к поддержки параллельного выполнения запросов, postgres_fdw
теперь может осуществлять массовую вставку данных и импорт секционированных таблиц с помощью директивы IMPORT FOREIGN SCHEMA
.
В PostgreSQL 14 представлены новые улучшения производительности системы очистки (vacuuming), включая оптимизации для индексов типа B-дерево. В этом релизе добавлен "аварийный режим" очистки, предназначенный для предотвращения переполнения счётчика транзакций (transaction ID wraparound). Операция ANALYZE
, используемая для сбора статистики, теперь работает значительно быстрее благодаря ряду оптимизаций производительности.
Сжатие для TOAST-системы, которая используется для хранения больших данных, таких как блоки текстов, теперь может настраиваться. В PostgreSQL 14 добавлена поддержка алгоритма сжатия LZ4 для TOAST-столбцов, в дополнение к существующей поддержке pglz
.
В PostgreSQL 14 появляются несколько новых функций для мониторинга и наблюдаемости, включая:
COPY
,compute_query_id
позволит вам отслеживать конкретный запрос, используя различные системы PostgreSQL – такие как pg_stat_activity
, EXPLAIN VERBOSE
и т.д.Улучшения в PostgreSQL вносят свой вклад в процессы планирования и выполнения запросов. В этом релизе включены несколько оптимизаций параллельного выполнения запросов, в том числе улучшенное параллельное выполнений последовательного сканирования, возможности для PL/pgSQL
выполнять параллельные запросы при использовании команды RETURN QUERY
, а также возможность задействовать параллельное выполнение запросов для REFRESH MATERIALIZED VIEW
. Кроме этого, запросы, использующие соединения на основе вложенных циклов, могут выполняться более эффективно за счёт дополнительного кэширования, реализованного в PostgreSQL 14.
Расширенная статистика теперь может быть использована для выражений. А также, производительность работы с оконными функциями выигрывает от использования инкрементальных сортировок — возможности, появившейся в PostgreSQL 13.
Хранимые процедуры, которые позволяют управлять транзакциями в блоках кода, теперь поддерживают параметры OUT
для определения возвращаемых данных.
PostgreSQL 14 предоставляет возможность "связывать" или, другими словами, выравнивать значения типа timestamp с конкретном интервалам времени, используя функцию date_bin
. В этом релизе также добавлены соответствующие стандарту выражения SEARCH
и CYCLE
, помогающие с сортировкой и определениям циклов в рекурсивных CTE.
PostgreSQL 14 позволяет удобно управлять привилегиями "только на чтение" и "только на запись" для таблиц, представлений и схем, используя предопределённые роли pg_read_all_data
и pg_write_all_data
.
Кроме этого, в этом релизе соответствующее стандартам система управления паролями и аутентификации SCRAM-SHA-256
становится системой по умолчанию для новых экземпляров PostgreSQL.
PostgreSQL является ведущей СУБД с открытыми исходными текстами, с глобальным сообществом из тысяч пользователей и разработчиков, объединяющим множество компаний и организаций. Проект PostgreSQL базируется на более чем 30-летнем опыте проектирования и разработки, начавшихся в Калифорнийском университете Беркли, и в настоящее время продолжает развиваться беспрецедентными темпами. Богатый набор возможностей PostgreSQL не только не уступает ведущим коммерческим СУБД, но и превосходит их развитой функциональностью, расширяемостью, безопасностью и стабильностью.
PostgreSQL is the world's most advanced open source database, with a global community of thousands of users, contributors, companies and organizations. Built on over 30 years of engineering, starting at the University of California, Berkeley, PostgreSQL has continued with an unmatched pace of development. PostgreSQL's mature feature set not only matches top proprietary database systems, but exceeds them in advanced database features, extensibility, security, and stability.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
For explanations of the above features and others, please see the following resources:
There are several ways you can download PostgreSQL 14, including:
Other tools and extensions are available on the PostgreSQL Extension Network.
PostgreSQL 14 comes with HTML documentation HTML documentation as well as man pages, and you can also browse the documentation online in both HTML and PDF formats.
PostgreSQL uses the PostgreSQL License, a BSD-like "permissive" license. This OSI-certified license is widely appreciated as flexible and business-friendly, since it does not restrict the use of PostgreSQL with commercial and proprietary applications. Together with multi-company support and public ownership of the code, our license makes PostgreSQL very popular with vendors wanting to embed a database in their own products without fear of fees, vendor lock-in, or changes in licensing terms.
Website
All logos are available for modification and redistribution under The PostgreSQL Licence. The PostgreSQL name and logo are trademarks of The PostgreSQL Community Association of Canada.
PostgreSQL enjoys the support of numerous companies, who sponsor developers, provide hosting resources, and give us financial support. See our sponsors page for some of these project supporters.
There is also a large community of companies offering PostgreSQL Support , from individual consultants to multinational companies.
If you wish to make a financial contribution to the PostgreSQL Global Development Group or one of the recognized community non-profit organizations, please visit our donations page.