• Авторизация


Visual Explain из пакета maatkit 27-03-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
вверх^ к полной версии понравилось! в evernote
Комментарии (6):
n0rb 27-10-2010-16:00 удалить
на маке тоже по контрол ентеру что неправильно
я у себя специально заебался и сделал комманд ентер, потом напишу в бложек о том как ---
Пусть в наступающем новом году
К вам деньги текут рекою,
Желаю вам взять свою высоту,
И всегда быть довольным собою.
Neolite 30-12-2012-15:19 удалить
Ответ на комментарий Фоны_от_Хароки # Благодарю! =) С наступающими праздниками!
OnlineLibrary 14-01-2013-14:20 удалить
Спасибо!

Новый год опять пришел!
Ну и что, что Старый, не беда!
Пусть у тебя всё будет хорошо,
Сегодня, завтра и всегда!


Комментарии (6): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Visual Explain из пакета maatkit | NeoliteBSD - Дневник администратора FreeBSD сервера | Лента друзей NeoliteBSD / Полная версия Добавить в друзья Страницы: раньше»