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

Как профилируешь запросы в базе Django

Для профилирования запросов в Django можно использовать несколько инструментов:

  1. django-debug-toolbar - самый популярный вариант. Показывает SQL-запросы, время выполнения и другие метрики:
python
# settings.py
INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
INTERNAL_IPS = ['127.0.0.1']
  1. connection.queries - встроенный способ для просмотра выполненных запросов:
python
from django.db import connection

# После выполнения запросов
print(len(connection.queries))  # Количество запросов
for q in connection.queries:
    print(q['sql'], q['time'])
  1. django-silk - более продвинутый профилировщик, который сохраняет историю запросов и позволяет анализировать их.

  2. explain() - для анализа конкретного запроса:

python
queryset.explain()  # Покажет план выполнения запроса

Для продакшена можно использовать Sentry или New Relic, которые также показывают медленные запросы.

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

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

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

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