Доступен PostgreSQL 11 RC


PostgreSQL 11 уже здесь – ну, это будет в течение нескольких дней, а релиз-кандидат уже доступен для загрузки.

PostgreSQL – это система баз данных с открытым исходным кодом, изначально созданная в Калифорнийском университете в Беркли. В настоящее время он поддерживается и разрабатывается Группой глобального развития PostgreSQL, объединяющей множество компаний и отдельных участников.

Текущая загрузка – это первый кандидат на выпуск, который, по словам разработчиков, должен быть идентичен первоначальному выпуску PostgreSQL 1. Он должен быть выпущен на следующей неделе. Большие изменения в новой версии коснулись разделов и параллелизма.

Улучшенная поддержка разделения в PostgreSQL обеспечивается поддержкой уникальных индексов и внешних ключей. Что еще более важно, когда вы создаете новый раздел, автоматически создается новый эквивалентный индекс. Теперь вы можете разбивать разделы с помощью хеш-ключа, что означает, что администраторам больше не нужно управлять разделами вручную в ситуациях, когда невозможно равномерно разделить строки на разделы, и есть раздел «по умолчанию» для хранения данных, который не соответствует ни одному из остальные разделы.

Есть также улучшения, когда вы используете многораздельные таблицы. Например, если вы запускаете оператор Update, который изменяет ключ раздела, затронутые строки теперь перемещаются в правильный раздел для ключа. Производительность операторов Select при использовании в многораздельных таблицах также была улучшена благодаря более совершенным стратегиям исключения разделов во время обработки и выполнения запросов. Вы можете использовать триггеры для многораздельных таблиц и писать запросы с предложением Group By, содержащим ключ секции.

Следующее главное улучшение – поддержка параллелизма. Это было введено в PostgreSQL 9, но теперь оно намного сильнее. Теперь вы можете создавать индексы для таблиц параллельно, и это будет использоваться для построения индексов B-Tree, когда программа считает, что параллельная сборка будет лучше с учетом ограничений ресурсов. Разработчики говорят, что возможность использования параллельного создания индексов должна заметно повысить производительность, поскольку процесс ограничен ЦП. Построение параллельного индекса B-дерева должно быть в два-три раза быстрее, чем выполнение того же самого без параллельной работы.

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

Производительность запросов также была улучшена за счет добавления JIT-компиляции запросов. Это было добавлено в PostgreSQL 10, но было улучшено. Компилятор JIT основан на LLVM, и хотя многие операции работают быстрее, другие, как было показано, медленнее, поэтому компилятор JIT является необязательным и не будет включен по умолчанию. Когда запрос компилируется JIT, генерируется оптимизированный битовый код промежуточного представления IR. Процесс оптимизации имеет доступ к полному контексту того, какие операторы применяются к каким столбцам, форме кортежей и возможно ли сворачивание констант.

Еще одно усовершенствование этой версии – поддержка индексов Include, в которых дополнительные столбцы включаются в индекс, хотя они не используются для сравнений; При осторожном использовании эта функция может увеличить количество сканирований только индекса.


Добавить комментарий