Типичный программист | IT, программирование, разработка, ИИ
IT и технологии · 28 сентября 2026 г.
Нетипичные оптимизации PostgreSQL для отчётов и индексов
Нетипичные оптимизации PostgreSQL для отчётов и индексов Обычный индекс по sold_at ускорил отчёт с 627 до 187 мс, но занял 214 МБ. При этом ежедневному отчёту не нужна точность времени до миллисекунд. Автор проиндексировал только дату и получил индекс на 66 МБ: повторяющихся значений стало больше, поэтому PostgreSQL смог сжать их дедупликацией. Другой приём пригодится для аналитических запросов. Условие plan = 'Pro' против ограничения с вариантами free и pro заставило базу проверить 100 тысяч строк. После включения constraint_exclusion PostgreSQL сопоставил условие с ограничением и вовсе пропустил сканирование. Для простых запросов режим добавляет расходы на планирование, поэтому автор предлагает включать его точечно в системах отчётности. В разборе нетипичных оптимизаций PostgreSQL есть SQL-запросы, планы выполнения и границы применимости каждого приёма.