Compter les connexions à mysql

WRInaute discret
Bonjour , j'ai deux questions :

1 ) Quel est le code php pour afficher en bas de page " x requetes mysql " ?

2 ) Quel est le code pour afficher le nombre de connexions simultanées à une base de données ?

Merci
 
WRInaute accro
1 - il n'y a pas de fonction qui permette de faire cela.
il faut que tu prenne une variable, et que tu l'incrémente de 1 à chaque mysql_query, et tu aura ton nombre de requetes mysql.

2 - pour le nombre de connections simultanées, l'information doit etre disponible sur le serveur mysql, je ne connait pas la requete à envoyer (quelqu'un qui passera saura peut etre)
 
WRInaute discret
Ca serait en effet intéressant d'avoir un script qui affiche en temps réel des informations relatives au trafic SQL (ça doit exister) si quelqu'un connait...

En attendant, si tu as accès au root du serveur qui héberge ton site (dédié par exemple), tu peux avoir le détail des stats sql de l'ensemble du serveur avec la commande "show status;" qui liste entre autre le nombre de connexions, le nombre de requêtes, les ressources utilisées, etc, depuis le dernier lancement de mysql. Cette commande doit s'utiliser après s'être connecté en SSH à la base de donnée, par la commande "mysql -u tonlogin -p"
 
Nouveau WRInaute
bonjour, pour la deuxième question la commande qui donne le nombre de connection sur une base mysql est
Code:
show processlist \G
Le \G est juste pour un meilleur affichage si tu tapes en ligne de commande sur ton serveur, si tu tapes la commande sur phpmyadmin tu n'as pas besoin du \G
 
WRInaute discret
mysql_stat
Renvoit :
Code:
Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)
 
WRInaute discret
intéressant !

Au passage est-il possible de lister en temps réel, non pas le nombre, mais le détail des requetes elles-même ? Et si possible pour chacune la quantité de mémoire utilisée, pour repérer facilement celles qui sont les plus gourmandes, ou celles qui font planter mysql...

En fait je cherche depuis longtemps en vain un script qui permette de "monitorer" mysql en temps réel, controler les requêtes, la mémoire... Un script qui réunirait précisément toutes les commandes dans ce genre, et les afficherait en php... Si ça existe je suis preneur, ça serait très utile pour diagnostiquer facilement la source de certains plantages
 
WRInaute discret
Merci pour la fonction mysql stats

Vous en pensez quoi de ça :

Array (
[0] => Uptime: 16068
[1] => Threads: 1
[2] => Questions: 1061650
[3] => Slow queries: 510
[4] => Opens: 9713
[5] => Flush tables: 1
[6] => Open tables: 64
Queries per second avg: 66.072 )

C'est bon pour un site ça ?
 
WRInaute discret
En attendant j'utilise ce petit code PHP, qui est très pratique car il présente l'avantage de donner en temps réel les stats de mysql, dans un tableau complet, qui s'affiche en colonnes sur une seule page.

Code:
<html><head><title>Moniteur MYSQL</title>
<style>table{font-family:verdana;font-size:8pt}</style>
</head><body>
<center><table border=0 cellspacing=0 cellpadding=0><tr><td valign=top>
<table width=90% border=1 cellspacing=0 cellpadding=0>
<?
$link  = mysql_connect('localhost', 'login', 'motdepasse');
$result = mysql_query('SHOW STATUS', $link);
$nb = 0;
while ($row = mysql_fetch_assoc($result)) {
  $nb = $nb+1;
  if (($nb == "29") || ($nb == "57") || ($nb == "85")) {
  print "</table></td><td valign=top><table width=90% border=1 cellspacing=0 cellpadding=0>";
  echo '<tr><td>&nbsp;' . $row['Variable_name'] . '</td><td><b>&nbsp;' . $row['Value'] . "</td></tr>";
  } else {
   echo '<tr><td>&nbsp;' . $row['Variable_name'] . '</td><td><b>&nbsp;' . $row['Value'] . "</td></tr>";
  }
}
mysql_close();
?>
</table></td></tr></table></body></html>

Utile pour voir le nombre de requêtes totales, le nombre de connexions, le trafic entrant et sortant, et la variable Max_used_connections qui donne en temps réel le nombre maximum de connexions simultanées utilisées depuis le démarrage du serveur sql.
 
Discussions similaires
Haut