php - soporta - optimizar consultas lentas mysql
Resultado del tiempo de consulta en MySQL con PHP (4)
¿Hay alguna manera de obtener el tiempo de una consulta MySQL (específicamente con PHP)? El tiempo real que tardó en completar la consulta, es decir.
Algo como: Resultados 1 - 10 para marrón. (0.11 segundos)
Traté de buscar un ejemplo, 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 actual de texto completo usando un motor de tabla MyISAM. Cualquier ayuda sería increíble. Gracias.
Hay dos posibilidades que puedo decirte ahora:
- wrap -> execute () con microtime () y mídalo tú mismo, posiblemente envolviendo todo el fragmento de código "que consulta" dentro de una clase / función
- ejecutar la consulta EXPLAIN de esa consulta y ver si puede leer algunos valores de los datos devueltos
Espero que ayude.
$starttime = microtime(true);
//Do your query and stuff here
$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken
Esto le dará el tiempo de ejecución en microsegundos.
Si está utilizando MYSQL 5, debería comprobar mejor MOSTRAR PERFIL
http://dev.mysql.com/doc/refman/5.0/en/show-profile.html
e imprime los tiempos en php ... o EXPLICA la instrucción SQL que tomó más tiempo o detalle cada consulta ... por CPU, etc.
esto puede ser de ayuda
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