2. Различия между Postgres Pro Standard и PostgreSQL

Postgres Pro предоставляет наиболее актуальную версию PostgreSQL c дополнительными изменениями и расширениями. Этот продукт включает все новые возможности, реализованные компанией Postgres Professional, а также сторонние доработки, которые уже приняты сообществом PostgreSQL и попадут в новые версии PostgreSQL. Таким образом, пользователи Postgres Pro Standard получают ранний доступ к важным нововведениям и исправлениям.

Примечание

Postgres Pro Standard предоставляется по следующей лицензии: https://postgrespro.ru/products/postgrespro/eula. Обязательно ознакомьтесь с условиями лицензии, прежде чем загружать и использовать Postgres Pro Standard.

Postgres Pro Standard отличают от PostgreSQL следующие усовершенствования:

  • Улучшенный механизм проверки блокировок, не оказывающий отрицательного влияния на производительность.
  • Уменьшение объёма записей в WAL, генерируемых при операциях CREATE INDEX с индексами GiST, GIN и SP-GiST.
  • Увеличенная скорость и эффективность планирования для различных типов запросов.
  • Уменьшенное потребление памяти при обработке сложных запросов со множеством таблиц.
  • Добавление времени планирования в информацию, выводимую модулем auto_explain.
  • Возможность замены нулевого байта заданным ASCII-символом при загрузке данных с помощью команды COPY FROM. (См. описание параметра nul_byte_replacement_on_import.)

    Возможность замены символа '\u0000' заданным символом Unicode при вызове функции, обрабатывающей JSONB. (См. описание параметра unicode_nul_character_replacement_in_jsonb.)

  • Использование ICU на всех платформах с целью обеспечить платформонезависимую сортировку для различных локалей. По умолчанию провайдер правил сортировки icu задействуется для всех локалей, за исключением C и POSIX. (См. Подраздел 22.2.2.)
  • Реализация механизма PTRACK, позволяющего программе pg_probackup отслеживать изменения страниц при создании инкрементальных резервных копий.
  • Согласованное чтение на ведомых серверах. (См. WAITLSN.)
  • Представление pg_recovery_settings, отображающее текущие параметры восстановления из файла recovery.conf.
  • Изменение параметров в recovery.conf без перезапуска сервера.
  • Улучшения редактирования в командной строке с использованием WinEditLine в версии psql для Windows, в том числе поддержка автодополнение в консоли psql и изменение кодировки psql по умолчанию на UTF-8.
  • Унифицированная структура пакетов двоичных файлов для всех дистрибутивов Linux, упрощающая миграцию между ними и позволяющая устанавливать несколько различных продуктов на базе PostgreSQL совместно без каких-либо конфликтов. (См. Главу 16.)

Postgres Pro Standard также включает следующие дополнительные модули:

  • Модуль dump_stat, позволяющий сохранять статистику данных при резервном копировании и восстановлении.
  • Модуль fasttrun, который предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, что предотвращает разрастание каталога pg_class.
  • Модуль fulleq, предоставляющий дополнительный оператор равенства для совместимости с Microsoft SQL Server.
  • Модуль hunspell-dict, предоставляющий словари для ряда языков.
  • Модуль jsquery, реализующий специальный язык запросов для эффективного поиска по индексу в структурированных данных JSONB.
  • Служба мониторинга mamonsu, исполненная в виде агента Zabbix.
  • Модуль mchar, предоставляющий дополнительный тип данных для совместимости с Microsoft SQL Server.
  • Модуль online_analyze, привносящий набор функций, которые немедленно обновляют статистику в целевых таблицах после операций INSERT, UPDATE, DELETE или SELECT INTO в них.
  • Пул соединений pgbouncer.
  • Модуль pg_pathman предоставляет оптимизированный механизм секционирования, а также функции для создания и управления секциями.
  • pg_probackup — менеджер резервного копирования и восстановления.
  • Утилита pgpro_controldata, показывающая управляющую информацию кластера БД PostgreSQL/Postgres Pro и параметры совместимости кластера и/или сервера.
  • Модуль pg_query_state, дающий возможность узнавать текущее состояние выполнения запросов в обслуживающем процессе.
  • Утилита pg_repack для реорганизации таблиц.
  • Модуль pg_tsparser — альтернативный анализатор текстового поиска.
  • Модуль pg_variables, предоставляющий функции для работы с переменными различных типов.
  • Расширение pg_wait_sampling, предназначенное для периодического сбора статистики по событиям ожидания. Воспользовавшись этим расширением, вы сможете понять характер активности сервера, в том числе увидеть текущие события ожидания во всех обычных и фоновых рабочих процессах.
  • Модуль plantuner, добавляющий поддержку указаний для планировщика, подключающих или отключающих определённые индексы при выполнении запроса.
  • Модуль rum, предоставляющий индекс RUM на базе GIN.
  • Модуль shared_ispell, позволяющий разместить словари в общей памяти.
  • Модуль sr_plan, позволяющий сохранять и восстанавливать планы запросов.

Выпуски Postgres Pro Standard следуют за выпусками PostgreSQL, хотя иногда могут выпускаться чаще. Схема версионирования Postgres Pro Standard основана на схеме версионирования PostgreSQL и включает дополнительную цифру.