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

Какие есть методы оптимизации запросов в Django

  1. select_related – для оптимизации ForeignKey и OneToOneField, выполняет JOIN в SQL.

    python
    queryset = Book.objects.select_related('author')  # Снижает количество запросов
  2. prefetch_related – для ManyToManyField и обратных связей, загружает связанные объекты отдельным запросом.

    python
    queryset = Author.objects.prefetch_related('books')
  1. only() и defer() – загружают только указанные поля или откладывают загрузку тяжелых полей.

    python
    queryset = Book.objects.only('title', 'author__name')
  2. annotate() и aggregate() – вычисления на уровне БД, а не в Python.

  3. Использование индексов – добавление db_index=True для часто фильтруемых полей.

  4. Кэширование@cache_page, cache.set()/get() для повторяющихся запросов.

  5. limit() и pagination – уменьшение объема данных за раз.

  6. Оптимизация raw SQL – для сложных запросов, но с осторожностью.

  7. connection.queries – отладка запросов в dev-режиме.

  8. django-debug-toolbar – инструмент для анализа запросов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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