Встречается на собеседованиях • сегодня
Какие знаешь сложности написания тяжеловесных запросов с помощью 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
интервью вопросы и ответы