Как диагностировать медленный запрос к БД
Для диагностики медленных запросов к БД можно использовать несколько подходов:
-
Логирование медленных запросов
Включить slow query log в СУБД (например, в MySQL:slow_query_log = 1,long_query_time = 1). Это записывает все запросы, выполняющиеся дольше указанного времени. -
EXPLAIN запросов
Анализировать план выполнения запроса с помощьюEXPLAIN:pythoncursor.execute("EXPLAIN SELECT * FROM users WHERE age > 30") print(cursor.fetchall())Покажет индексы, типы соединений и потенциальные узкие места.
-
Профилирование
Использовать встроенные инструменты профилирования:pythonimport cProfile pr = cProfile.Profile() pr.enable() # выполнение запроса pr.disable() pr.print_stats(sort='time') -
ORM-специфичные инструменты
Например, в Django:DEBUG=Trueпоказывает все запросы и их время, аdjango-debug-toolbarдает детальную информацию. -
Мониторинг БД
Использовать инструменты типа pgBadger для PostgreSQL или Performance Schema в MySQL.
Оптимизация обычно начинается с добавления недостающих индексов, переписывания сложных запросов и уменьшения количества запросов (например, через select_related/prefetch_related в Django).

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