sql >> Database teknologi >  >> RDS >> Mysql

Hvordan viser jeg eksekveringstiden for en MySQL-forespørgsel i PHP?

Dette fungerede som en charme!

    $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 

OPDATERING (Følgende virker nu på innodb på min nuværende opsætning)

$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 af (vis profiler) fra phpmyadmin.

Query_ID    Duration    Query   
1           0.00010575  SELECT DATABASE()

Hent den faktiske (absolutte) eksekveringstid for den sidste forespørgsel i PHP (ekskl. netværksforsinkelse osv.)



  1. Mysql hvor 1 =0 forvirring

  2. Kan jeg ændre ft_min_word_len på delt hosting?

  3. Brug som jokertegn i udarbejdet erklæring

  4. Se filen gemt i databasen ved hjælp af php på browseren