Resultado del tiempo de consulta en MySQL con PHP

Resuelto bob_cobb asked hace 54 años • 4 respuestas

¿Hay alguna manera de obtener la hora de una consulta MySQL (específicamente con PHP)? Es decir, el tiempo real que llevó completar la consulta.

Algo como: Resultados 1 - 10 para marrón. (0,11 segundos)

Intenté buscar un ejemplo, pero fue en vano. Aquí hay un ejemplo de mi código:

                    // 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();

Para mi búsqueda de texto completo actual utilizando un motor de tablas MyISAM. Cualquier ayuda sería increíble. Gracias.

bob_cobb avatar Jan 01 '70 08:01 bob_cobb
Aceptado
$starttime = microtime(true);

//Do your query and stuff here

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

TENGA EN CUENTA que esto le dará el tiempo de ejecución en segundos (no en microsegundos) al microsegundo más cercano debido a que get_as_floatel parámetro es verdadero. Mira esto

rayman86 avatar Mar 11 '2011 01:03 rayman86

esto puede ayudarte

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) |
+----------+----------+--------------------------+

saludos

Patricio Jofre avatar May 07 '2015 20:05 Patricio Jofre

Hay dos posibilidades que puedo decirte ahora:

  • ajuste ->ejecutar() con microtime() y mídalo usted mismo, posiblemente envolviendo el fragmento de código completo de "consulta" dentro de una clase/función
  • ejecute la consulta EXPLAIN de esa consulta y vea si puede leer algunos valores de los datos devueltos

Espero que ayude.

Tomasz Kowalczyk avatar Mar 11 '2011 01:03 Tomasz Kowalczyk