Для анализа медленных запросов в 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 в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…