Представьте, что эндпоинт получения каталога фильмов начал сильно тормозить. Как вы будете диагностировать проблему и искать медленные SQL-запросы? Что такое проблема N+1 и как она решается на уровне ORM и чистых SQL-запросов?

Измерьте полный запрос и отдельно SQL, количество обращений, сериализацию и ожидание соединения. N+1 — один запрос за списком плюс отдельные запросы за связями каждой записи.

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

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

Измерьте полный запрос и отдельно SQL, количество обращений, сериализацию и ожидание соединения. N+1 — один запрос за списком плюс отдельные запросы за связями каждой записи.

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

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

Измерьте полный запрос и отдельно SQL, количество обращений, сериализацию и ожидание соединения. N+1 — один запрос за списком плюс отдельные запросы за связями каждой записи.

В ORM используйте подходящие eager-loading механизмы: select_related для одиночных связей, prefetch_related для коллекций. В SQL помогают JOIN, пакетная выборка по ключам и агрегации. Для медленных отдельных запросов изучите план, статистику и индексы. Не загружайте все связанные объекты, если нужны только counts, и повторите замер на сопоставимых данных.

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

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

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

Подробнее