Как диагностировать проблему, когда API с фильтром по `title` быстро работает на тесте, но на продакшене с 100 миллионами записей отвечает десятки секунд? Как увидеть отсутствие индекса?

Снимите SQL с реальными параметрами и сравните план на production-объёме. Отсутствие подходящего индекса проверяют в схеме; последовательное сканирование в плане само по себе ещё не доказывает его отсутствие.

Короткий ответ

Что ответить на собеседовании

Снимите SQL с реальными параметрами и сравните план на production-объёме. Отсутствие подходящего индекса проверяют в схеме; последовательное сканирование в плане само по себе ещё не доказывает его отсутствие.

Подробный разбор

Ответ с пояснениями

Снимите SQL с реальными параметрами и сравните план на production-объёме. Отсутствие подходящего индекса проверяют в схеме; последовательное сканирование в плане само по себе ещё не доказывает его отсутствие.

Проверьте оператор: title = значение, префикс и поиск подстроки требуют разных подходов. Функция lower(title), приведение типа или неподходящая сортировка могут мешать использованию обычного индекса. Посмотрите оценки строк, число прочитанных страниц, сортировку, OFFSET и время ожидания блокировок. EXPLAIN ANALYZE выполняет запрос: применяйте его с ограничениями нагрузки. После изменения индекса или запроса измерьте результат на репрезентативных данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее