Как проверить скорость запроса без результата в MySQL

У меня есть запросы, которые возвращают тысячи результатов, можно ли показать только время запроса без фактических результатов в консоли MySQL или из командной строки?


person jcubic    schedule 29.05.2012    source источник
comment
этого достаточно на cmd: date && mysql < your_script.sql && date ?   -  person rabudde    schedule 29.05.2012
comment
не забудьте перенаправить вывод в /dev/null   -  person Vitaly Dyatlov    schedule 29.05.2012
comment
Можно ли отображать время в секундах, а не в datetime? (то же, что и после запроса в консоли mysql, но без результатов).   -  person jcubic    schedule 29.05.2012
comment
Чтобы отобразить время в секундах для процесса, по крайней мере, в Unix, используйте команду time: /usr/bin/time -f "%e" -- mysql < your_script.sql > /dev/null   -  person Patrice Levesque    schedule 20.03.2014


Ответы (2)


Используйте SET profiling = 1; в командной строке.

Дополнительные сведения см.

Невозможно получить время выполнения без получения результата или выполнения sql.

Узнайте, почему мы можем не получить время выполнения без фактического выполнения запроса

person Romil Kumar Jain    schedule 29.05.2012

Если вы используете Linux.

  1. Создайте файл query.sql.
  2. Введите запрос для проверки. например select * from table1
  3. Запустите эту команду:

time mysql your_db_name -u'db_user_name' -p'your_password' < query.sql > /dev/null

Вывод будет выглядеть примерно так:

real    0m4.383s    
user    0m0.022s    
sys     0m0.004s

«настоящая» линия — это то, на что вы смотрите. В приведенном выше примере запрос занял 4,38 секунды.

Очевидно, что вводить свой пароль БД в командной строке — не такая уж хорошая идея, но это будет быстрый и грязный обходной путь.

person codemonkey    schedule 27.10.2018