Назовите основные методы оптимизации SQL-запросов.
Уровень: Senior
Ответ
Несколько ключевых подходов: 1) Создание индексов на столбцы, используемые в WHERE, JOIN и ORDER BY – чтобы ускорить доступ по ним. 2) Избегать SELECT * – запрашивать только нужные столбцы (меньше данных – быстрее). 3) Фильтровать данные на как можно более раннем этапе (условия WHERE, HAVING), исключать лишние строки сразу. 4) Проверять и обновлять статистику – оптимизатор на основе статистики решает, как выполнить запрос, актуальные статистические данные помогают ему выбрать лучший план. 5) Избегать неоптимальных конструкций: например, функции над индексированными столбцами в условии (они мешают использовать индекс), или ненужных подзапросов, которые можно заменить JOIN. 6) Использовать EXPLAIN – анализировать план выполнения, чтобы выявить проблемные места (seq scan больших таблиц, отсутствие нужного индекса и т.п.) и скорректировать запрос или добавить индекс.