-- Запросы без оптимизации
SELECT * FROM users; -- Возвращает 100 пользователей
SELECT * FROM orders WHERE user_id = 1;
SELECT * FROM orders WHERE user_id = 2;
-- ... повторяется 100 раз
Выше — классический пример N+1 проблемы в действии. Когда ваше приложение внезапно начинает генерировать сотни запросов на простую операцию, вы столкнулись с одной из самых коварных проблем объектно-реляционного отображения (ORM).
Механизм катастрофы: Почему N+1 так разрушителен
ORM — это великолепная абстракция, но она подобна остро заточенному ножу: неверное использование приводит к глубоким порезам производительности. Рассмотрим типичный сценарий на Python (SQLAlchemy):
...