Команда EXPLAIN

Команда EXPLAIN используется для анализа того, как СУБД будет выполнять SQL-запрос. Она показывает порядок обработки таблиц, используемые индексы, типы соединений и ожидаемое количество обрабатываемых строк. Команда применяется для оптимизации запросов и поиска узких мест в производительности.

Синтаксис

sqlEXPLAIN SELECT column_list
FROM table_name
WHERE condition

Таблицы для примеров

employees
id name salary department
1 Ivan 50000 IT
2 Olga 52000 HR
3 Sergey 48000 IT
4 Petr 60000 Finance

Пример

Давайте проанализируем план выполнения запроса без использования индексов:

sqlEXPLAIN
SELECT id, name, salary
FROM employees
WHERE salary > 50000;

Результат выполнения кода:

id select_type table type possible_keys key rows Extra
1 SIMPLE employees ALL NULL NULL 4 Using where

Пример

Давайте создадим индекс по столбцу salary и повторно проанализируем тот же запрос:

sqlCREATE INDEX idx_employees_salary
ON employees (salary);
sqlEXPLAIN
SELECT id, name, salary
FROM employees
WHERE salary > 50000;

Результат выполнения кода:

id select_type table type possible_keys key rows Extra
1 SIMPLE employees range idx_employees_salary idx_employees_salary 2 Using where

Смотрите также

  • команду SELECT,
    которая делает выборку данных
  • команду WHERE,
    которая задаёт условия отбора
  • команду CREATE INDEX,
    которая создаёт индекс
  • команду JOIN,
    которая соединяет таблицы