Сначала отличите медленное выполнение от ожидания блокировки или соединения. Затем сравните план, фактические строки, I/O и статистику с периодом нормальной работы.
SQL-запрос выполняется 20 секунд вместо 200 мс. Опишите пошаговый поиск причины: план выполнения, индексы, статистика, блокировки.
Сначала отличите медленное выполнение от ожидания блокировки или соединения. Затем сравните план, фактические строки, I/O и статистику с периодом нормальной работы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала отличите медленное выполнение от ожидания блокировки или соединения. Затем сравните план, фактические строки, I/O и статистику с периодом нормальной работы.
Проверьте изменение параметров, объёма данных и индексов; большой разрыв estimated/actual rows указывает на проблемы оценки. Изучите scans, joins, сортировки и выход на диск. EXPLAIN ANALYZE действительно выполняет запрос, поэтому для изменяющих данные операций нужен безопасный стенд. Исправление подтверждают повторным измерением, а не добавлением индекса наугад.