Встречается на собеседованиях • сегодня
Какие знаешь методы оптимизации ORM
- Выборка только нужных полей – используй
only()илиdefer()для загрузки только необходимых полей, уменьшая объем данных.
python
User.objects.only('username', 'email') # Загружает только username и email- select_related() – для ForeignKey и OneToOneField, уменьшает количество SQL-запросов через JOIN.
python
Entry.objects.select_related('author') # JOIN с таблицей авторов- prefetch_related() – для ManyToManyField и обратных связей, загружает связанные объекты одним запросом.
python
Article.objects.prefetch_related('tags') # Оптимизация для M2M-
Использование индексов – добавь
db_index=Trueдля часто фильтруемых полей. -
Пакетные операции –
bulk_create(),bulk_update()для массовых вставок/обновлений.
python
User.objects.bulk_create([User(...), User(...)])-
Оптимизация агрегаций –
annotate()иaggregate()вместо Python-логики. -
Ленивые запросы – избегай преждевременного выполнения через
list()илиlen()без необходимости. -
Кеширование – Django ORM +
cache_pageили низкоуровневое кеширование QuerySet. -
Raw SQL для сложных запросов – если ORM неэффективен, используй
raw(). -
Оптимизация миграций – избегай лишних
ALTER TABLE, объединяй миграции.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы