Результат запроса в MySQL с PHP - PullRequest
13 голосов
/ 11 марта 2011

Есть ли способ получить время запроса MySQL (особенно с PHP)? Фактическое время, необходимое для выполнения запроса, то есть.

Что-то типа: Результаты 1 - 10 для коричневого. (0,11 секунды)

Я пытался найти пример, но безрезультатно. Вот пример моего кода:

                    // prepare sql statement
                $stmt = $dbh->prepare("SELECT ijl, description, source, user_id, timestamp FROM Submissions WHERE MATCH (ijl, description) AGAINST (?)");

                // bind parameters
                $stmt->bindParam(1, $search, PDO::PARAM_STR);

                // execute prepared statement
                $stmt->execute();

Для моего текущего полнотекстового поиска с использованием механизма таблиц MyISAM. Любая помощь будет невероятной. Спасибо.

Ответы [ 4 ]

40 голосов
/ 11 марта 2011
$starttime = microtime(true);

//Do your query and stuff here

$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken

Это даст вам время выполнения в микросекундах.

5 голосов
/ 07 мая 2015

это может вам помочь

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

mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE T1 (id INT);
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW PROFILES;
+----------+----------+--------------------------+
| Query_ID | Duration | Query                    |
+----------+----------+--------------------------+
|        0 | 0.000088 | SET PROFILING = 1        |
|        1 | 0.000136 | DROP TABLE IF EXISTS t1  |
|        2 | 0.011947 | CREATE TABLE t1 (id INT) |
+----------+----------+--------------------------+

привет

2 голосов
/ 11 марта 2011

Есть две возможности, которые я могу вам сказать сейчас:

  • wrap -> execute () с помощью microtime () и измерьте его самостоятельно, возможно, заключив весь фрагмент кода «запроса» в класс / функцию
  • запустите запрос EXPLAIN этого запроса и посмотрите, сможете ли вы прочитать некоторые значения из возвращенных данных.

Надеюсь, это поможет.

0 голосов
/ 15 мая 2013

Если вы используете MYSQL 5, вам лучше проверить SHOW PROFILE

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

и выведите время в php ... или ОБЪЯСНИТЕ оператор SQL, который занимал больше времени, или детализируйте каждый запрос ... по процессору и т. Д.

...