Простой способ ускорить запросы в PostgreSQL, даже не трогая сам SQL-код.

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,471
Реакции
1,547
Credits
33,153
Сегодня рассмотрим простой способ ускорить запросы в PostgreSQL, даже не трогая сам SQL-код.

Часто разработчики и админы оптимизируют запросы, играя с индексами или переписывая JOIN'ы. Но забывают про один мощный инструмент — ANALYZE.

ANALYZE обновляет статистику по таблицам. Эта статистика — хлеб для планировщика запросов. Если она устарела, PostgreSQL может выбрать неэффективный план, даже если у вас всё индексировано как надо.

Простой пример:
SQL:
ANALYZE my_big_table;

Запускаешь — и вдруг сложный JOIN срабатывает в разы быстрее. Потому что PostgreSQL теперь знает, какие там объемы данных, сколько уникальных значений в колонках и т.п.

Совет: если ты регулярно заливаешь данные в таблицы (например, через ETL или бэкапы) — добавь ANALYZE в конец процедуры. Это дёшево, но может дать мощный прирост производительности.

Можно даже так:
SQL:
VACUUM ANALYZE my_big_table;

Так ты и "мусор" уберёшь, и статистику обновишь за один проход.