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

Python Middle Без компании
Как профилируешь запросы в базе Django
Ответы
Для профилирования запросов в Django можно использовать несколько инструментов: - **django-debug-toolbar** - самый популярный вариант. Показывает SQL-запросы, время выполнения и другие метрики: ``` # settings.py INSTALLED_APPS += ['debug_toolbar'] MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware'] INTERNAL_IPS = ['127.0.0.1'] ``` - **connection.queries** - встроенный способ для просмотра выполненных запросов: ``` from django.db import connection # После выполнения запросов print(len(connection.queries)) # Количество запросов for q in connection.queries: print(q['sql'], q['time']) ``` - **django-silk** - более продвинутый профилировщик, который сохраняет историю запросов и позволяет анализировать их. - **explain()** - для анализа конкретного запроса: ``` queryset.explain() # Покажет план выполнения запроса ``` Для продакшена можно использовать Sentry или New Relic, которые также показывают медленные запросы.