+38/050/370-3627
+38/067/502-3306
+38/044/257-2444
Новости

Опубликована новая стабильная ветка СУБД PostgreSQL 12

Опубликована новая стабильная ветка СУБД PostgreSQL 12

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

Основные новшества СУБД PostgreSQL 12:

  • Добавлена поддержка "генерируемых столбцов", значение которых вычисляется на основе выражения, охватывающего значения других столбцов в той же таблице (аналог представлений, но для отдельных столбцов). Генерируемые столбцы могут быть двух типов - хранимые и виртуальные. В первом случае значение вычисляется в момент добавления или изменения данных, а во втором - при каждом чтении на основе текущего состояния других столбцов. В настоящее время в 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.

Другие новости