biowep
25-11-2013, 20:15
Ciao, vorrei rilevare il numero di queries che uno script effettua. Non ho la possibilità di modificare tale script, per cui posso usare solo gli strumenti di PHP e MYSQL.
Ho pensato di effettuare una query prima di eseguire tale script dalla quale estraggo il conteggio query totale. Il problema è che non so esattamente cosa usare perché in mysql ci sono 2 voci di statistiche "Questions" e "Queries" e non ho capito la differenza.
In pratica voglio contare le queries di Joomla ma il attivando il debug mi dice che il numero è differente (sempre minore di 2). Si, ho controllato anche senza il debug attivato (nel caso tale sistema eseguisse delle queriesaggiuntive) ed il numero che ottengo è sempre quello.<?php
$db = new mysqli("localhost", "root", "", "joomla2");
if ($db->error) die($db->errno);
$queries = $db->query('SHOW GLOBAL STATUS LIKE "questions"')->fetch_array()[1];
$time = microtime(TRUE);
require 'index.php';
$time = microtime(TRUE)-$time;
$queries = $db->query('SHOW GLOBAL STATUS LIKE "questions"')->fetch_array()[1] - $queries - 1;//-1 perché quella precedente era una query
?>
<div style="background:#000; color:#fff">
Execution time: <?php echo $time*1000; ?>ms
<br />
Queries: <?php echo $queries; ?>
</div>
Se invece di questions uso queries il numero calcolato è +1;
Ho pensato di effettuare una query prima di eseguire tale script dalla quale estraggo il conteggio query totale. Il problema è che non so esattamente cosa usare perché in mysql ci sono 2 voci di statistiche "Questions" e "Queries" e non ho capito la differenza.
In pratica voglio contare le queries di Joomla ma il attivando il debug mi dice che il numero è differente (sempre minore di 2). Si, ho controllato anche senza il debug attivato (nel caso tale sistema eseguisse delle queriesaggiuntive) ed il numero che ottengo è sempre quello.<?php
$db = new mysqli("localhost", "root", "", "joomla2");
if ($db->error) die($db->errno);
$queries = $db->query('SHOW GLOBAL STATUS LIKE "questions"')->fetch_array()[1];
$time = microtime(TRUE);
require 'index.php';
$time = microtime(TRUE)-$time;
$queries = $db->query('SHOW GLOBAL STATUS LIKE "questions"')->fetch_array()[1] - $queries - 1;//-1 perché quella precedente era una query
?>
<div style="background:#000; color:#fff">
Execution time: <?php echo $time*1000; ?>ms
<br />
Queries: <?php echo $queries; ?>
</div>
Se invece di questions uso queries il numero calcolato è +1;