Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / FAQ: MySQL Profiler - кнутом или пряником / 22 сообщений из 22, страница 1 из 1
23.09.2009, 22:43
    #36213752
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
MySQL Profiler - кнутом или пряником

Какие инструменты могут помочь разогнать запрос.

Совершенно случайно наткнулся на статью MySQL Profiler: простой и удобный инструмент профилирования запросов . Для меня это оказалось в новинку.
Поискал по форуму, оказывается, он тут практически неизвестен. Однако вопросы, в которых он мог бы помочь, возникают регулярно.

Ссылки по теме:
Using the New MySQL Query Profiler
SHOW PROFILES Syntax
The INFORMATION_SCHEMA PROFILING Table
System Variable profiling
System Variable profiling_history_size

Дополнение - появилась еще маленькая статья на эту тему:
MySQL Profiler + firePHP
...
Рейтинг: 0 / 0
23.09.2009, 23:59
    #36213821
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
miksoft,

да, полезная штука, но редко нужная на ежедневную работу (если не ДБА).
Я использовал профайлер когда разбирались с повторяюшимся подселектом типа:

select a,
(select b from c where c.d=f.e) з
from f

как-то не верилось что такой селект может хоть как-то соревноваться с

select a, b
from f,c
where c.d=f.e

я предпологал что разница будет на порядки оказалось что скорость всево лишь
чуть меньше. Неповерил, дума кеш работает -- включил профайлер:

В профаилере четко было указано 20 тысяци (размер таблицы ф) отдельных подселектов,
каждый был по 3-5 НАНО-секунд и весь запрос уложился в сотню милисекунд.
Очевидно, все шло из памяти.
...
Рейтинг: 0 / 0
02.09.2010, 18:20
    #36826687
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
Комрады, что это может значить? Длительность запрос не равна сумме длительностей всех составляющих запроса. Что сервер делал еще ~500 секунд?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
mysql> SHOW PROFILES;
+----------+---------------+-------------------------+
| Query_ID | Duration      | Query                   |
+----------+---------------+-------------------------+
|         1  |  1563 . 42433500  | OPTIMIZE TABLE t        |
+----------+---------------+-------------------------+
 1  row in set ( 0 . 00  sec)

mysql> SHOW PROFILE FOR QUERY  1 ;
+---------------------+------------+
| Status              | Duration   |
+---------------------+------------+
| starting            |    0 . 000084  |
| Opening tables      |    0 . 000018  |
| System lock         |    0 . 000004  |
| Table lock          |    0 . 000097  |
| init                |    0 . 000025  |
| Opening tables      |    0 . 000206  |
| System lock         |    0 . 000003  |
| Table lock          |    0 . 000003  |
| setup               |    0 . 000287  |
| creating table      |    0 . 315071  |
| After create        |    0 . 000193  |
| copy to tmp table   |  999 . 999999  |
| rename result table |    1 . 483668  |
| end                 |    0 . 000026  |
| Opening table       |    0 . 000223  |
| System lock         |    0 . 000003  |
| Table lock          |    1 . 051676  |
| query end           |    0 . 000007  |
| freeing items       |    0 . 000026  |
| cleaning up         |    0 . 000005  |
+---------------------+------------+
 20  rows in set ( 0 . 00  sec)
...
Рейтинг: 0 / 0
02.09.2010, 18:34
    #36826700
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
Похоже, он делал "copy to tmp table". А куча девяток - огрехи вывода.

Что говорит
Код: plaintext
1.
2.
3.
SELECT STATE, FORMAT(DURATION,  6 ) AS DURATION
FROM INFORMATION_SCHEMA.PROFILING
WHERE QUERY_ID =  1  ORDER BY SEQ;
?
...
Рейтинг: 0 / 0
02.09.2010, 18:55
    #36826732
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
miksoft,

тоже самое. Действительно, там поле DECIMAL(9, 6). В него 1563 просто не помещается.

Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
05.03.2012, 18:20
    #37692169
lumega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
К верхнему посту хочется добавить еще одну программулину www.profilesql.com Neor Profile.
Особенно полезна для веб-разработчиков, которые порой не знают какие вообще запросы генерирует их сайт.
...
Рейтинг: 0 / 0
06.03.2012, 09:36
    #37692819
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
lumegaК верхнему посту хочется добавить еще одну программулину Neor Profile.
Особенно полезна для веб-разработчиков, которые порой не знают какие вообще запросы генерирует их сайт.Судя по полной ее безвестности в поисковиках, это что-то сомнительное.
...
Рейтинг: 0 / 0
10.08.2012, 15:41
    #37912413
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
Слушайте я чего то не пойму, как профилировать запросы в этом идиотском mysql

Первая ссылка - http://habrahabr.ru/post/70435/
там написано
mysql> set profiling=1;
mysql> select count(*) from comment;
mysql> select count(*) from message;
mysql> show profiles;

у меня нет "mysql>" где его брать?
у меня есть Workbench, версия mysql 5.0.41

если я запускаю это в Workbench, без "mysql>" мне выводит таблицу с двумя строками, но вместо текста запроса там blob поле, окей

я нажимаю кнопку в программе (которую и хочу исследовать), снова вызываю "show profiles", кол-во строк там по прежнему 2, хотя должно быть минимум 3

если в Workbench вызвать еще один запрос и вызывать "show profiles" - строчек становится три, я не пойму почему из-за нажатия кнопки в программе их не стало больше двух?
...
Рейтинг: 0 / 0
10.08.2012, 15:49
    #37912427
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
вторая (Using the New MySQL Query Profiler) - ссылка не работает
третья (SHOW PROFILES Syntax) - это аналог первой, не работает
четвертая (The INFORMATION_SCHEMA PROFILING Table) - просто структура таблицы
пятая/шестая (System Variable profiling, System Variable profiling_history_size_) - ссылка не работает
последняя (MySQL Profiler + firePHP) - слишком сложно для профайлера, мне еще и пхп что ли ставить на сервер, попроще что нибудь есть?
...
Рейтинг: 0 / 0
10.08.2012, 15:53
    #37912432
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
весь гугль ведет на способ, аналогичный в http://habrahabr.ru/post/70435/, который собственно и не работает, либо на сторонние условно-бесплатные/платные утилиты по 30-40 мб весом
...
Рейтинг: 0 / 0
13.08.2012, 00:26
    #37913816
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
17-77у меня нет "mysql>" где его брать?Поторопились вы за профилировщик браться.
"mysql>" - это приглашение ввода стандартного консольного клиента MySQL , который и называется mysql/mysql.exe (в зависимости от ОС). Все такого рода эксперименты и демонстрации проводятся именно в нем.
...
Рейтинг: 0 / 0
13.08.2012, 09:44
    #37913951
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
miksoft,
благодарю, это я теперь нашел, но в том консольном приложении показывает запросы, выполненные только в нем же

если я запускаю отдельно программу и выполняю там действия (обновление записи например, т.е. по любому должен быть апдейт, если глазами глянуть в таблицу - видны мои изменения) - в консольном mysql ничего нового не появляется
...
Рейтинг: 0 / 0
13.08.2012, 10:18
    #37913989
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
17-77, ну RTFM, в конце-то концов!

http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html The SHOW PROFILES and SHOW PROFILE statements display profiling information that indicates resource usage for statements executed during the course of the current session .
...
Рейтинг: 0 / 0
13.08.2012, 10:19
    #37913995
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
17-77, в гугле по запросу "mysql set profiling" это вторая ссылка - сразу после так горячо любимого вами хабра.
...
Рейтинг: 0 / 0
13.08.2012, 11:55
    #37914216
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
miksoft(в зависимости от ОС)
windows server 2008

tanglir,
ну и смысл тогда в этом? на весь интернет раструбили способ, который не работает

у меня задача стоит выяснить какие запросы пошли к БД, когда нажали кнопку в программе, MS SQL Profiler позволяет это сделать на раз-два-три, MySQL создает кучу проблем, которые я пытаюсь решить уже второй день

-----

попробовал Neor Profile - не показывает
попробовал Jet Profiler for MySQL - не показывает, в документации сказано:

If nothing shows up
If you do not get any results, chances are your database is not doing much work at all. You can try using a shorter polling interval (100ms) and running for longer periods of time. If you still do not see anything, you can always issue a long running query manually (e.g. Using the mysql prompt):

SELECT SLEEP(30);

It will run for 30 seconds, and should show up in the profiling. If you are using MySQL < 5.0.12, you can run

SELECT BENCHMARK(50000000, ENCODE('hello','goodbye'));

but it takes some CPU to run.


сделал аналогично, 30 секундный запрос из workbench отобразил, но простой селект из таблицы из workbench не показывает
...
Рейтинг: 0 / 0
13.08.2012, 12:10
    #37914244
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
17-77способ, который не работаетСпособ работает. В том, что вы не понимаете границ применимости этого способа, никто (кроме вас) не виноват.
17-77у меня задача стоит выяснить какие запросы пошли к БД, когда нажали кнопку в программе,Если это так важно, обратитесь к разработчику программы. Или включите перед нажатием клавиши (а после - выключите) логирование всех запросов ( смотреть сюда ).
...
Рейтинг: 0 / 0
13.08.2012, 12:11
    #37914250
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
И для начала хотя бы осознайте разницу между терминами "профилирование" и "логирование" запросов в mysql, ok?
...
Рейтинг: 0 / 0
14.08.2012, 15:53
    #37916184
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
tanglirИ для начала хотя бы осознайте разницу между терминами "профилирование" и "логирование" запросов в mysql, ok?
а разве во время профилирования запросы не должны отображаться?

tanglirСпособ работает. В том, что вы не понимаете границ применимости этого способа, никто (кроме вас) не виноват.
а т.е. я виноват в том, что разработчики MySQL не могут сделать нормальную (ожидаемую) функцию логирования/трейса/профилирования запросов? ожидаемая - это запустил приложение, подключился к серверу и смотришь какие запросы на нем выполняются не зависимо от того, какое стороннее приложение их выполняет, без перезапусков сервера и прочих танцев с бубнами

tanglirИли включите перед нажатием клавиши (а после - выключите) логирование всех запросов ( смотреть сюда ).
благодарю за подсказку, попробую
...
Рейтинг: 0 / 0
14.08.2012, 16:27
    #37916294
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
логирование запросов помогло, но пришлось, я так понял, перезапускать сервер
...
Рейтинг: 0 / 0
14.08.2012, 17:58
    #37916476
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
17-77но пришлось, я так понял, перезапускать серверНу да, это опция запуска, в рантайме она не меняется.
17-77а т.е. я виноват в том, что разработчики MySQL не могут сделать нормальную (ожидаемую) функцию логирования/трейса/профилирования запросов? ожидаемая - это запустил приложение, подключился к серверу и смотришь какие запросы на нем выполняются не зависимо от того, какое стороннее приложение их выполняет, без перезапусков сервера и прочих танцев с бубнамиНет, вы виноваты в том, что ожидаете от разработчиков мускля слишком многого, да ещё и забесплатно. Я вот, к примеру, хочу, чтобы он научился работать с темптаблицами не только через NLJ. Чтобы не приходилось на каждый чих писать ХП с индексированием этих самых темптаблиц. Заметьте, хочу, но не ожидаю
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.01.2017, 15:24
    #39391244
FAQ: MySQL Profiler - кнутом или пряником
Могу еще добавить хороший профилировщик запросов в dbForge Studio for MySQL. Пробовал пользоваться и другими, но этот больше по душе.
...
Рейтинг: 0 / 0
05.04.2017, 20:28
    #39433767
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: MySQL Profiler - кнутом или пряником
Владимир ПоздняковМогу еще добавить хороший профилировщик запросов в dbForge Studio for MySQL. Пробовал пользоваться и другими, но этот больше по душе.Это не профилировщик. Это всего лишь GUI для штатного профилировщика.

Модератор: И прекращайте, пожалуйста, посты ради ссылок писать. Вас за это уже банили.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / FAQ: MySQL Profiler - кнутом или пряником / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]