Чем пользовался для оптимизации запросов в Django

Python Junior Без компании
Чем пользовался для оптимизации запросов в Django
Ответы
Для оптимизации запросов в Django чаще всего использую: - **`select_related`** — для жадной загрузки ForeignKey и OneToOne полей (JOIN в SQL). ``` Book.objects.select_related('author').all() # Загружает автора вместе с книгой ``` - **`prefetch_related`** — для ManyToMany и обратных ForeignKey (отдельные запросы + Python-джойн). ``` Author.objects.prefetch_related('books').all() # Оптимизирует загрузку книг автора ``` - **`only()` и `defer()`** — загрузка только нужных полей. ``` Book.objects.only('title', 'author__name') # Только title и имя автора ``` - **Индексы в моделях** — `db_index=True` для часто фильтруемых полей. - **`annotate()` и `aggregate()`** — вычисления на стороне БД. - **Кеширование** — `django.core.cache` для тяжёлых запросов. Для анализа: `django-debug-toolbar` — показывает запросы и время выполнения.