sql >> Databasteknik >  >> RDS >> Mysql

Hur visar jag körningstid för en MySQL-fråga i PHP?

Detta fungerade som en charm!

    $db->query('set profiling=1'); //optional if profiling is already enabled
    $db->query($_POST['query']);
    $stmt = $db->query('show profiles');
    $db->query('set profiling=0'); //optional as well

    $records = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $errmsg = $stmt->errorInfo()[2]; //Output the error message 

UPPDATERING (Följande fungerar nu på innodb på min nuvarande installation)

$db->query('set profiling=1'); //optional if profiling is already enabled
$db->query($_POST['query']);
$res = $db->query('show profiles');
$records = $res->fetchAll(PDO::FETCH_ASSOC);
$duration = $records[0]['Duration'];  // get the first record [0] and the Duration column ['Duration'] from the first record

Resultat av (visa profiler) från phpmyadmin.

Query_ID    Duration    Query   
1           0.00010575  SELECT DATABASE()

Hämta den faktiska (absoluta) exekveringstiden för den senaste frågan i PHP (exklusive nätverkslatens etc)



  1. SQL Slumpmässiga rader i en stor tabell (med where-sats)

  2. MySQL-UPPDATERING:Topp 5 tips för T-SQL-utvecklare

  3. Generera Doctrine-Entity automatiskt från befintlig tabell

  4. Hur man använder Virtual Index i Oracle Database