Увеличение производительности базы на PostgreSQL переходом на 12 версию
1 min readNov 28, 2019
Команда, разрабатывающая PostgreSQL, каждый год выкатывает большие обновления, добавляющие новые возможности в СУБД. PostgreSQL 12 позволяет ускорить ваши приложения без больших трудозатрат! Нужно сделать всего 2 вещи:
- Обновить PostgreSQL, например по инструкции.
- Выполнить перестраивание существующих индексов командой:
REINDEX DATABASE CONCURRENTLY название_базы_данных;
В предыдущих версиях PostgreSQL, если в вашей базе были большие индексы, то их перестраивание потребовало бы ограничение доступа к соответствующим таблицам. К счастью, в PostgreSQL 12 вы можете перестраивать индексы параллельно, используя параметр CONCURRENTLY. Так, ваше приложение не будет простаивать, пока вы выполняете перестраивание.
А вот и некоторые причины для обновления:
- Ускорение запросов по индексам B-tree
- Сокращение использования дискового пространства индесами B-tree (-40% на эталонном тесте!)
- Ускорение запросов к секционированным таблицам
- Возможность создавать покрывающие индексы на GIST-индексы
- По умолчанию включена JIT-компиляция
- Возможность выполнять запросы к документам JSONB с использованием выражений, определенных в стандарте SQL/JSON
- … и многое другое. Полный список изменений вы можете найти здесь: https://www.postgresql.org/docs/12/release-12.html