Релиз СУБД PostgreSQL 13
24 сентября 2020 года
После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 13. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2025 года.
- Реализована дедупликация записей в индексах B-tree, позволившая поднять производительность запросов и сократить потребление дискового пространства при индексации записей с повторяющимися данными. Дедупликация производится через периодический запуск обработчика, выполняющего слияние групп повторяющихся кортежей и замену дубликтов на ссылки на одну хранимую копию.
- Повышена производительность запросов, в которых используются агрегатные функции, сгруппированные наборы (GROUPING SETS) или секционированные (партицированные) таблицы. Оптимизации связаны с использованием при агрегировании хэшей вместо фактических данных, что позволяет избежать размещения всех данных в памяти при обработке больших запросов. При секционировании расширено число ситуаций, при которых секции могут быть отброшены или объединены.
- Добавлена возможность использования расширенной статистики, создаваемой при использовании команды "CREATE STATISTICS", для улучшения эффективности планирования запросов, содержащих условия "OR" или поиск в списках с использованием выражений "IN" или "ANY".
- Ускорена чистка индексов при выполнении операции VACUUM за счёт распараллеливания сборки мусора в индексах. При помощи нового параметра "PARALLEL" администратор может определить число потоков, которые будут одновременно запускаться для VACUUM. Добавлена возможность инициирования автоматического выполнения VACUUM после вставки данных.
- Добавлена поддержка инкрементальной сортировки, позволяющей использовать данные, отсортированные на предыдущем этапе, для ускорения сортировки на последующих этапах обработки запроса. Для включения новой оптимизации в планировщике запросов предусмотрена настройка "enable_incremental_sort", которая включена по умолчанию.
- Добавлена возможность ограничения размера слотов репликации, позволяющих в автоматическом режиме гарантировать сохранение сегментов лога отложенной записи (WAL) до тех пор, пока они не будут получены всеми запасными серверами, принимающими реплики. Слоты репликации также не позволяют основному серверу удалить строки, которые могут привести к конфликтам, даже если запасной сервер отключён. При помощи параметра max_slot_wal_keep_size теперь можно ограничить максимальный размер WAL-файлов для предотвращения исчерпания места на диске.
- Расширены возможности мониторинга активности СУБД, в том числе в команде EXPLAIN обеспечен показ дополнительной статистики по использованию WAL-лога, в pgbasebackup предоставлена возможность отследить состояние выполнения непрерывных бэкапов и реализована индикации прогресса выполнения команды ANALYZE.
- Добавлена новая команда pg_verifybackup для проверки целостности резервных копий, создаваемых командой pg_basebackup.
- При работе с JSON с использованием операторов jsonpath разрешено применение функции datetime() для преобразования форматов времени (строками ISO 8601 и родными типами времени PostgreSQL). Например, можно использовать конструкции "jsonb_path_query('["2015-8-1", "2015-08-12"]', '$[*] ? (@.datetime()
- Добавлена встроенная функция gen_random_uuid() для генерации идентификаторов UUID v4.
- В системе секционирования реализована полная поддержка логической репликации и задаваемых выражением "BEFORE" триггеров, работающих на уровне строк.
- Синтаксис "FETCH FIRST" теперь допускает использование выражения "WITH TIES", позволяющего вернуть дополнительные строки, которые находятся в хвосте результирующего набора, получаемого после применения "ORDER BY".
- Реализована концепция заслуживающих доверия дополнений ("trusted extension"), которые могут быть установлены обычными пользователями, не имеющими прав администратора СУБД. Список подобных дополнений изначально предопределён и может быть расширен суперпользователем. В число заслуживающих доверия дополнений включены pgcrypto, tablefunc, hstore и т.п.
- В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована поддержка аутентификации на основе сертификатов. При использовании SCRAM-аутентификации клиентам разрешено запрашивать "привязку канала" (channel binding).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.