Средний
Как бороться с медленными запросами (Slow Queries) в PostgreSQL?
Алгоритм действий аналитика/разработчика:
1. Логирование: Включить модуль pg_stat_statements, чтобы найти топ самых долгих и частых запросов.
2. Анализ: Выполнить EXPLAIN ANALYZE <запрос>, чтобы увидеть план выполнения (ищем Seq Scan — полное сканирование).
3. Индексы: Добавить B-Tree, GIN или Покрывающий индекс для колонок из WHERE и JOIN.
4. Переписывание: Заменить IN на EXISTS, убрать подзапросы в SELECT, заменить COUNT(*) на триггеры (если таблица огромная).
5. Архитектура: Если ничего не помогает — денормализовать данные, добавить кэш (Redis) или партицировать таблицу.