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

Как диагностировать медленный запрос к БД

Для диагностики медленных запросов к БД можно использовать несколько подходов:

  1. Логирование медленных запросов
    Включить slow query log в СУБД (например, в MySQL: slow_query_log = 1, long_query_time = 1). Это записывает все запросы, выполняющиеся дольше указанного времени.

  2. EXPLAIN запросов
    Анализировать план выполнения запроса с помощью EXPLAIN:

    python
    cursor.execute("EXPLAIN SELECT * FROM users WHERE age > 30")
    print(cursor.fetchall())

    Покажет индексы, типы соединений и потенциальные узкие места.

  1. Профилирование
    Использовать встроенные инструменты профилирования:

    python
    import cProfile
    pr = cProfile.Profile()
    pr.enable()
    # выполнение запроса
    pr.disable()
    pr.print_stats(sort='time')
  2. ORM-специфичные инструменты
    Например, в Django: DEBUG=True показывает все запросы и их время, а django-debug-toolbar дает детальную информацию.

  3. Мониторинг БД
    Использовать инструменты типа pgBadger для PostgreSQL или Performance Schema в MySQL.

Оптимизация обычно начинается с добавления недостающих индексов, переписывания сложных запросов и уменьшения количества запросов (например, через select_related/prefetch_related в Django).

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

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

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

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