Встречается на собеседованиях • сегодня

Какие знаешь сложности написания тяжеловесных запросов с помощью ORM

Основные сложности при работе с тяжеловесными ORM-запросами:

  1. 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()`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы