Встречается на 1% собеседований по Python
Какие знаешь сложности написания тяжеловесных запросов с помощью ORM
Основные сложности при работе с тяжеловесными ORM-запросами:
- N+1 проблема - ORM может генерировать множество запросов вместо одного JOIN:
python
# Плохо - N+1 запросов
users = User.objects.all()
for user in users:
print(user.profile.city) # Отдельный запрос для каждого профиля
Хорошо - prefetch_related
users = User.objects.select_related('profile').all()
text
2. **Сложные агрегации** - ORM часто менее гибок, чем чистый SQL для сложных аналитических запросов.
3. **Оптимизация JOIN'ов** - ORM может создавать неоптимальные соединения таблиц.
4. **Проблемы с производительностью** - ORM-запросы могут быть медленнее рукописных SQL.
5. **Ограниченная выразительность** - сложные условия фильтрации могут быть трудновыразимы через ORM API.
6. **Проблемы с подзапросами** - не все ORM хорошо поддерживают сложные подзапросы.
7. **Избыточные данные** - ORM может загружать лишние поля, если не указать явно `.only()` или `.defer()`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы