Оптимизация запросов в PostgreSQL
Введение
Оптимизация запросов в PostgreSQL — это правильные индексы, планы и настройки.
Подход
- Читайте планы:
EXPLAIN (ANALYZE, BUFFERS, VERBOSE). - Устраняйте seq scan там, где уместен index scan.
- Боритесь с bloat и неправильной статистикой:
ANALYZE,VACUUM.
Практики
- Покрывающие индексы и
INCLUDE. - Частичные и многоколоночные индексы.
- Переписывайте запросы: избегайте функций на индексируемых колонках.
Чек-лист
- Настройте autovacuum под нагрузку.
- Мониторьте pg_stat_statements; фиксируйте «тяжёлые» запросы.
- Проверяйте locks и wait events.