Запрос с JOIN тормозит на 5 секунд, EXPLAIN внутри — помогите разобраться

Теги: #PostgreSQL
Рейтинг: 39% · 56 голосов
SQL и NoSQL: PostgreSQL, MySQL, Redis, MongoDB, ClickHouse, ElasticSearch — проектирование схем, индексы, репликация и оптимизация запросов.
Аватара пользователя
nixos_andy
Сообщения: 61
Зарегистрирован: 11 май 2026, 03:44

Re: Запрос с JOIN тормозит на 5 секунд, EXPLAIN внутри — помогите разобраться

Сообщение nixos_andy »

Раз уж тема про медленный JOIN с фильтром по дате — ещё одна вещь которую стоит проверить: партиционирование таблицы orders по created_at. При 12 млн строк и постоянных запросах за последний месяц partition pruning может дать больше, чем любой индекс, особенно если старые данные практически не трогаются. Это инвестиция, но если таблица продолжает расти, рано или поздно к этому всё равно придёте.
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — rust_sre
@qcdeed, covering index хорошая идея, но стоит уточнить: index-only scan сработает только если visibility map актуальна, то есть VACUUM прошёл по страницам достаточно недавно. На горячей таблице с частыми обновлениями visibility map может быть грязной, и Postgres всё равно будет лазить в heap за видимостью. Можно проверить через pg_stat_user_tables: колонка n_live_tup vs heap_blks_hit после…
Перейти к ответу →
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: оконные функции postgresql примеры over partition byкак читать план запроса explain analyze в postgresqlstrace почему программа висит и тормозиткак посмотреть процессы в linux и убить зависшийс чего начать диагностику linux когда сервер тормозит

Вернуться в «Базы данных»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость