2013-03-18 1 views
1

Когда вы выполняете запрос SELECT, аналогичный приведенному ниже в командной строке MySQL.Возвращает реальную продолжительность операторов select в MySQL

SELECT * FROM MASTER LIMIT 1000; 

возвращает:

1000 строк в наборе < 0,00 сек>

Когда он явно занимает около 1.5+ секунд, чтобы закончить.

Может ли кто-нибудь сказать мне, почему это так, и даже лучше, как получить реальную продолжительность?

Благодаря

+0

Может быть лаг сети? MySQL сообщает, сколько времени потребовалось для выполнения запроса, за исключением времени, затраченного на получение запроса, и для передачи результатов ... отправка 1000 строк по сети может занять 1,5 с в зависимости от настройки. – Adrian

+0

SELECT * FROM MASTER LIMIT 999; SELECT * FROM MASTER LIMIT 1; Странно, что вышеизложенное возвращает довольно хорошее время в командной строке, но затем оно недоступно из профилировщика. – edited

ответ

1

1.5+ сек означает время, необходимое для получения строки из базы данных.

Вы можете использовать SHOW ENGINE INNODB STATUS для печати активных операций

0

Вы можете включить профилирование:

set profiling=1

тогда;

show profile for query...

http://dev.mysql.com/doc/refman/5.0/en/show-profile.html

+0

Это возвращает то же, что и в командной строке, поэтому не исправляет его (просто с более десятичными точками). Это метод, который я использовал для операторов Update и Insert, которые работают очень хорошо. – edited

Смежные вопросы