Middle
44
Wat doet EXPLAIN en wat verandert er bij het toevoegen van ANALYZE? Wanneer is een index nutteloos?
Bedrijven waar gevraagd werd
aic
Antwoord van AI
sobes.tech AI
Команда EXPLAIN в SQL показывает план выполнения запроса, то есть как СУБД собирается получить данные (например, последовательное сканирование таблицы, использование индексов и т.д.). Это помогает понять, насколько эффективно написан запрос.
Добавление ANALYZE к EXPLAIN (EXPLAIN ANALYZE) запускает сам запрос и выводит фактическое время выполнения каждого шага и количество обработанных строк. Это даёт более точную информацию о производительности.
Индекс может быть бесполезен, если:
- Запрос выбирает большую часть таблицы (например, более 30-40%), тогда СУБД может предпочесть полное сканирование.
- Колонка с индексом содержит мало уникальных значений (низкая селективность).
- Запрос использует функции или операции, которые не могут использовать индекс (например,
LIKE '%abc'). - Индекс не покрывает все необходимые поля для запроса, и требуется дополнительное обращение к таблице.
Пример:
EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30;
Выведет план и реальные затраты на выполнение запроса.