Специальный выпуск POSTGRESSO, посвященный выходу официального релиза версии 11.
На улице PostgreSQL праздник. После четырех beta вышла PostgreSQL 11 General Availability, то есть официальная версия. В анонсе есть даже приветственное слово Брюса Момжана: «готовя этот релиз, сообщество особенно заботилось о добавлении функциональности, необходимой для работы с очень большими базами данных. Доказано, что PostgreSQL хорошо работает с транзакционными нагрузками, а теперь новая версия — PostgreSQL 11 — облегчит разработчикам еще и создание приложений для Big Data».
В release notes выделяют
- секционирование:
- добавлено секционирование по хешу;
- PRIMARY KEY, FOREIGN KEY, индексы (см. ниже на эту тему) и триггеры;
- секция по умолчанию для записей, вышедших за границы созданных секций;
- UPDATE по ключу секционирования теперь может автоматически перемещать запись в соответствующую секцию;
- PostgreSQL научился исключать ненужные секции
(partition pruning)
во время исполнения запросов SELECT;
- распараллеливание:
- теперь можно параллельно создавать индекс в случае B-tree;
- при CREATE TABLE… AS, CREATE MATERIALIZED VIEW и в некоторых случаях запросов с UNION;
- улучшена производительность в параллельных HASH JOIN и SEQUENTIAL SCAN;
- появились хранимые процедуры, и в них возможно управление транзакциями;
- JIT-компиляция некоторых запросов, выигрыш на вычислении выражений;
- оконные функции теперь поддерживают все фреймовые опции SQL:2011 стандарта, в том числе расстояния по RANGE у PRECEDING/FOLLOWING, режим GROUPS, возможность исключения строк из фрейма;
- появились покрывающие индексы [не покрывающие, а инклюзивные, строго говоря — прим. POSTGRESSO], использующие выражение INCLUDE при CREATE INDEX;
- из раздела «разное»: ALTER TABLE… ADD COLUMN c значениями NOT NULL по умолчанию: этот вариант команды теперь не перезаписывает все строки таблицы и, следовательно, работает быстро.