Bonjour,
Je cherche comment connaître le nombre de requête en cache lors d'exécution de requêtes (donc pas celle dans le cache global), et aussi comment récupérer le temps d'exécution d'une requête?
Merci![]()
Bonjour,
Je cherche comment connaître le nombre de requête en cache lors d'exécution de requêtes (donc pas celle dans le cache global), et aussi comment récupérer le temps d'exécution d'une requête?
Merci![]()
Vous pouvez utiliser un profiler de requête (mysql query browser ?) ou un profiler de code (xdebug avec interface kcachegrind ou script perl ct_annotate ?).
Est-ce que vous utilisez une classe d'abstraction de base de données ? Si oui, modifiez la méthode de requête par example comme cela :
Si vous utilisez directement les fonctions de reqûetes, j'ai peur qu'il ne vous reste plus que les profilers (qui sont de très bonnes solutions, surtout si vous n'en utilisez pas déjà).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <? function query($sql, $unbuffered = false) { if (defined('DEBUG')) $q_start = get_microtime(); $this->query_result = @mysqli_query($this->link_id, $sql); if ($this->query_result) { if (defined('DEBUG')) $this->saved_queries[] = array($sql, sprintf('%.5f', get_microtime() - $q_start)); ++$this->num_queries; return $this->query_result; } else { if (defined('DEBUG')) $this->saved_queries[] = array($sql, 0); return false; } }
Non je n'utilise pas de classe, mais j'ai vu une technique qui consiste a faire un SHOW STATUS avant et apres la requete.
Effectivement je voie plein de solutions dans la documentation : http://dev.mysql.com/tech-resources/...-profiler.html
Vous parlez peut-être de show profiles ? Vive google au fait n'est-ce-pas...
Eu j'ai évidemment fait plusieurs recherche sur google avant de poster ce sujet...
Edit: Quel est la méthode utilisé sur le forum?
vBulletin utilise une classe d'abstraction de base de données avec des fonctions de débuggage à l'instar du code que j'ai posté.
Partager