Postgresql 13

good-penguin.png

24 сентября команда разработчиков сообщила о выходе очередного релиза Postgresql под номером 13. В новом выпуске основное внимание, среди прочего, было уделено повышению производительности, ускорению внутренних служб обслуживания и упрощению мониторинга базы, а также более надежному контролю доступа к системе.

Продолжилась работа над оптимизацией индексирования таблиц в плане обработки дубликатов среди индексируемых данных в двоичных деревьях индексов, что позволило не только ускорить исполнение запросов, но еще и сократить занимаемое индексом дисковое пространство. Кроме этого, добавлен алгоритм инкрементальной сортировки, при котором повторная сортировка уже отсортированных на предыдущих шагах данных работает быстрее, а у части запросов ускорения можно добиться благодаря применению новой расширенной статистики (через команду CREATE STATISTICS) при вычислении более эффективного пошагового плана. Также оптимизировано выполнение запросов с затратной агрегацией данных путем более широкого применения хэшированной агрегации и сброса части агрегированных данных на диск, если они не помещаются в оперативную память. Отмечается значительный прирост скорости соединения таблиц, расположенных на разных разделах.

Немалая работа была проведена и в области упрощения обслуживания и администрирования баз данных Postgresql. Встроенная задача «вакуумирования», то есть использования освободившегося дискового пространства после удаления или перезаписи строк, теперь может выполняться в параллельных потоках, при этом у администратора появилась возможность указать их число. В дополнение к этому добавлены новые средства мониторинга текущей активности базы и предотвращены ошибки при синхронизации логов предварительной записи между мастером и репликами, что могло привести к конфликтам при отключении реплик или нарушить целостность распределенной базы после их восстановления на основе данных журнала.

Среди нововведений для разработчиков стоит выделить функцию datetime(), преобразующую различные стандартные форматы записи времени во встроенный тип Postgresql; доступную из коробки функцию генерации UUID v4 gen_random_uuid(); нормализацию работы с юникодом; более гибкую систему распределения данных таблицы на связанных сетевых узлах базы с полноценной репликацией на логическом уровне, а также другие изменения в запросах и новых доступных для реплик триггерах.

Контроль доступа к базе заявляется как один из ключевых компонентов системы, и в новой версии в этом плане сделаны большие шаги вперед. Теперь установку расширений к базе может выполнять только привилегированный пользователь (superuser). При этом обычные пользователи самостоятельно смогут устанавливать только те расширения, которые помечены им как надежные, либо небольшое множество расширений, считающихся надежными по умолчанию (например, pgcrypto, tablefunc или hstore). При аутентификации пользователей с помощью механизма SCRAM (при работе через драйвер libpq) теперь требуется «привязка канала», а функция-обертка для сторонних данных postgres_fdw с 13-ой версии поддерживает авторизацию по сертификату.

Примечания к выпуску

Страница загрузки

>>> Подробности

©  Linux.org.ru