Встречается на 1% собеседований по Python
Какие знаешь методы оптимизации 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
интервью вопросы и ответы