powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / FAQ: MySQL Profiler - кнутом или пряником
22 сообщений из 22, страница 1 из 1
FAQ: MySQL Profiler - кнутом или пряником
    #36213752
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FAQ: MySQL Profiler - кнутом или пряником
    #36213821
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FAQ: MySQL Profiler - кнутом или пряником
    #36826687
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комрады, что это может значить? Длительность запрос не равна сумме длительностей всех составляющих запроса. Что сервер делал еще ~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
FAQ: MySQL Profiler - кнутом или пряником
    #36826700
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, он делал "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
FAQ: MySQL Profiler - кнутом или пряником
    #36826732
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

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

Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
FAQ: MySQL Profiler - кнутом или пряником
    #37692169
lumega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К верхнему посту хочется добавить еще одну программулину www.profilesql.com Neor Profile.
Особенно полезна для веб-разработчиков, которые порой не знают какие вообще запросы генерирует их сайт.
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37692819
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lumegaК верхнему посту хочется добавить еще одну программулину Neor Profile.
Особенно полезна для веб-разработчиков, которые порой не знают какие вообще запросы генерирует их сайт.Судя по полной ее безвестности в поисковиках, это что-то сомнительное.
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37912413
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте я чего то не пойму, как профилировать запросы в этом идиотском 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
FAQ: MySQL Profiler - кнутом или пряником
    #37912427
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вторая (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
FAQ: MySQL Profiler - кнутом или пряником
    #37912432
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
весь гугль ведет на способ, аналогичный в http://habrahabr.ru/post/70435/, который собственно и не работает, либо на сторонние условно-бесплатные/платные утилиты по 30-40 мб весом
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37913816
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77у меня нет "mysql>" где его брать?Поторопились вы за профилировщик браться.
"mysql>" - это приглашение ввода стандартного консольного клиента MySQL , который и называется mysql/mysql.exe (в зависимости от ОС). Все такого рода эксперименты и демонстрации проводятся именно в нем.
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37913951
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
благодарю, это я теперь нашел, но в том консольном приложении показывает запросы, выполненные только в нем же

если я запускаю отдельно программу и выполняю там действия (обновление записи например, т.е. по любому должен быть апдейт, если глазами глянуть в таблицу - видны мои изменения) - в консольном mysql ничего нового не появляется
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37913989
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FAQ: MySQL Profiler - кнутом или пряником
    #37913995
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77, в гугле по запросу "mysql set profiling" это вторая ссылка - сразу после так горячо любимого вами хабра.
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37914216
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FAQ: MySQL Profiler - кнутом или пряником
    #37914244
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77способ, который не работаетСпособ работает. В том, что вы не понимаете границ применимости этого способа, никто (кроме вас) не виноват.
17-77у меня задача стоит выяснить какие запросы пошли к БД, когда нажали кнопку в программе,Если это так важно, обратитесь к разработчику программы. Или включите перед нажатием клавиши (а после - выключите) логирование всех запросов ( смотреть сюда ).
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37914250
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И для начала хотя бы осознайте разницу между терминами "профилирование" и "логирование" запросов в mysql, ok?
...
Рейтинг: 0 / 0
FAQ: MySQL Profiler - кнутом или пряником
    #37916184
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirИ для начала хотя бы осознайте разницу между терминами "профилирование" и "логирование" запросов в mysql, ok?
а разве во время профилирования запросы не должны отображаться?

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

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

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


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