Visual Explain из пакета maatkit
|
|
Суббота, 27 Марта 2010 г. 12:49
+ в цитатник
По работе все чаще приходится оптимизировать запросы в связи с возрастающей нагрузкой на сервер. Но обычного EXPLAIN'а мне показалось мало и решено было найти что-нибудь выводящее процесс обработки запроса в более наглядном виде. Так я и наткнулся на пакет утилит
maatkit.
Maatkit - это набор инструментов, который предоставляет собой расширенные средства по управлению MySQL, сбору аналитической информации и ее обработке, проведению рутинных операций, восстановлению данных и прочего. В пакет входит множество полезных инструментов, которых к сожалению нет в стандартной поставке с БД, но обязательно нужны для максимально эффективной работы. Этот пакет разработан и поддерживается компанией Percona - известных экспертов в области консультирования вопросов производительности.
На данный момент из всего многообразия утилит меня интересовала только одна - mk-visual-explain. Именно она отвечала за вывод результата работы команды EXPLAIN в виде древа.
Пример запроса:
select actor_id,
(select count(film_id) from sakila.film join sakila.film_actor using(film_id))
from sakila.actor;
Результат EXPLAIN'а:
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+
| 1 | PRIMARY | actor | index | NULL | PRIMARY | 2 | NULL | 200 | Using index |
| 2 | SUBQUERY | film | index | PRIMARY | idx_fk_language_id | 1 | NULL | 951 | Using index |
| 2 | SUBQUERY | film_actor | ref | idx_fk_film_id | idx_fk_film_id | 2 | sakila.film.film_id | 2 | Using index |
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+
И собственно вывод mk-visual-explain:
SUBQUERY
+- JOIN
| +- Index lookup
| | key film_actor->idx_fk_film_id
| | possible_keys idx_fk_film_id
| | key_len 2
| | ref sakila.film.film_id
| | rows 2
| +- Index scan
| key film->idx_fk_language_id
| possible_keys PRIMARY
| key_len 1
| rows 951
+- Index scan
key actor->PRIMARY
key_len 2
rows 200
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-