Какие есть методы оптимизации запросов в Django
-
select_related – для оптимизации ForeignKey и OneToOneField, выполняет JOIN в SQL.
pythonqueryset = Book.objects.select_related('author') # Снижает количество запросов -
prefetch_related – для ManyToManyField и обратных связей, загружает связанные объекты отдельным запросом.
pythonqueryset = Author.objects.prefetch_related('books')
-
only() и defer() – загружают только указанные поля или откладывают загрузку тяжелых полей.
pythonqueryset = Book.objects.only('title', 'author__name') -
annotate() и aggregate() – вычисления на уровне БД, а не в Python.
-
Использование индексов – добавление
db_index=Trueдля часто фильтруемых полей. -
Кэширование –
@cache_page,cache.set()/get()для повторяющихся запросов. -
limit() и pagination – уменьшение объема данных за раз.
-
Оптимизация raw SQL – для сложных запросов, но с осторожностью.
-
connection.queries – отладка запросов в dev-режиме.
-
django-debug-toolbar – инструмент для анализа запросов.

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