Команда EXPLAIN
Команда EXPLAIN используется для анализа того,
как СУБД будет выполнять SQL-запрос.
Она показывает порядок обработки таблиц,
используемые индексы, типы соединений
и ожидаемое количество обрабатываемых строк.
Команда применяется для оптимизации запросов
и поиска узких мест в производительности.
Синтаксис
EXPLAIN SELECT column_list
FROM table_name
WHERE condition
Таблицы для примеров
| id | name | salary | department |
|---|---|---|---|
| 1 | Ivan | 50000 | IT |
| 2 | Olga | 52000 | HR |
| 3 | Sergey | 48000 | IT |
| 4 | Petr | 60000 | Finance |
Пример
Давайте проанализируем план выполнения запроса без использования индексов:
EXPLAIN
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 и повторно проанализируем тот же запрос:
CREATE INDEX idx_employees_salary
ON employees (salary);
EXPLAIN
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,
которая соединяет таблицы