EXPLAIN в Mysql

Игорь Грегорченко

Для анализа медленных запросов в Mysql используется инструкция EXPLAIN:
EXPLAIN [запрос]

Пример анализа запроса, использующего индекс:
EXPLAIN select * from users where email = 'golotyuk@gmail.com';

+----+-------------+-------+-------+---------------+-------+---------+-------+------+-------+
| id | select_type | table | type  | possible_keys | **key**   | key_len | ref   | **rows** | Extra |
+----+-------------+-------+-------+---------------+-------+---------+-------+------+-------+
|  1 | SIMPLE      | users | const | email         | **email** | 767     | const |    **1** |       |
+----+-------------+-------+-------+---------------+-------+---------+-------+------+-------+

## Значение в колонке rows = 1, что хорошо

Внимание стоит обратить на колонку key – в ней должно быть название индекса, который использует Mysql для выборки.
Колонка rows покажет количество обработанных строк (должно быть очень маленьким – десятки…сотни).

Пример EXPLAIN для медленного запроса:
EXPLAIN select * from users where email like '%golotyuk%';

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | users | ALL  | NULL          | ***NULL*** | NULL    | NULL | ***2154*** | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

Как видим, индекса нет и количество обработанных строк очень большое.
В указанном примере индексы не помогут, т.к. используется LIKE с фильтром справа и слева.
Однако в большинстве случаев, проблема всегда связана с отсутствием индексов.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023