Релиз СУБД PostgreSQL 12

3 октября 2019 года

После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 12. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2024 года.

Основные новшества:

  • Добавлена поддержка "генерируемых столбцов", значение которых вычисляется на основе выражения, охватывающего значения других столбцов в той же таблице (аналог представлений, но для отдельных столбцов). Генерируемые столбцы могут быть двух типов - хранимые и виртуальные. В первом случае значение вычисляется в момент добавления или изменения данных, а во втором - при каждом чтении на основе текущего состояния других столбцов. В настоящее время в PostgreSQL поддерживаются только хранимые генерируемые столбцы;
  • Добавлена возможность выполнения запросов данных из JSON-документов при помощи Path-выражений, напоминающих XPath и определённых в стандарте SQL/JSON. Для повышения эффективности обработки подобных выражений для документов, хранимых в формате JSONB, применяются существующие механизмы индексирования;
  • Включено по умолчанию применение JIT-компилятора (Just-in-Time) на основе наработок LLVM для ускорения выполнения некоторых выражений в процессе обработки SQL-запроса. Например, JIT применим для ускорения выполнения выражений внутри блоков "WHERE", в выходных списках (target lists), агрегатных выражениях и некоторых внутренних операциях;
  • Существенно увеличена производительность индексирования. Индексы B-tree оптимизированы для работы в условиях частого изменения индексов - в тестах TPC-C наблюдается общее повышение производительности и снижение потребления дискового пространства в среднем на 40%. Снижены накладные расходы при генерации лога упреждающей записи (WAL) для типов индексов GiST, GIN и SP-GiST. Для GiST добавлена возможность создания индексов-обёрток (через выражение INCLUDE), включающих дополнительные столбцы. В операции CREATE STATISTICS обеспечена поддержка статистики о наиболее типичных значениях (MCV), позволяющей генерировать более оптимальные планы запросов при использовании неравномерно распределенных столбцов;
  • Реализация секционирования (партицирования) оптимизирована для запросов, охватывающих таблицы с тысячами секций, но ограничивающихся выборкой ограниченного подмножества данных. Увеличена производительность добавления данных в секционированные таблицы при помощи операций INSERT и COPY, а также обеспечена возможность добавления новых секций через "ALTER TABLE ATTACH PARTITION" без блокировки выполнения запросов;
  • Добавлена поддержка автоматического inline-развёртывания обобщённых табличных выражений ( Common Table Expression, CTE), позволяющих использовать временные именованные результирующие наборы, задаваемые при помощи оператора WITH. Inline-развёртывание позволяет повысить производительность большинства запросов, но пока применяется только для нерекурсивных CTE;
  • Добавлена поддержка недетерминированных свойств локали "Collation", позволяющего задавать правила сортировки и методы сопоставления с учётом смысла символов (например, при сортировке цифровых значений учитывается наличие минуса и точки перед числом и разные виды написания, а при сравнении не принимается во внимание регистр символов и наличие знака ударения);
  • Добавлена поддержка многофакторной аутентификации клиента, при которой в pg_hba.conf для аутентификации можно комбинировать аутентификацию по SSL-сертификату (clientcert=verify-full) c дополнительным методом аутентификации, таким как scram-sha-256;
  • Добавлена поддержка шифрования канала связи при аутентификации через GSSAPI, как на стороне клиента, так и на стороне сервера;
  • Добавлена поддержка определения LDAP-серверов на основе записей "DNS SRV", если PostgreSQL собран с OpenLDAP;
  • Добавлена операция "REINDEX CONCURRENTLY" для перестроения индексов без блокировки операций записи в индекс;
  • Добавлена команда pg_checksums, позволяющая для существующей БД включать и выключать проверку контрольных сумм страниц данных (ранее данная операция поддерживалась только во время инициализации БД);
  • Обеспечен вывод индикатора прогресса выполнения операций CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL и pg_checksums;
  • Добавлена команда "CREATE ACCESS METHOD" для подключения обработчиков новых методов хранения таблиц, оптимизированных для различных специфичных задач. В настоящее время единственным встроенным методом доступа к таблицам является "heap";
  • Файл конфигурации recovery.conf объединён с postgresql.conf. В качестве индикаторов перехода в состояние восстановления после сбоя теперь следует использовать файлы recovery.signal и standby.signal.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз СУБД PostgreSQL 12», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.