Comment compter les connexions db ouvertes?
Je suis le développement d'une application web à l'aide de Java servlet pour accéder à des bases de données Mysql, comment puis-je obtenir le nombre de connexions à ma DB qui est actuellement ouvert ?
Edit :
J'ai essayé le "show processlist", il m'a montré : 2695159, mais ce n'est pas vrai, je suis juste l'élaboration de ce nouveau projet, je suis le seul utilisateur, ne pouvait pas avoir que de nombreux processus en cours d'exécution, ce que je veux, c'est le nombre d'utilisateurs accédant mon projet de DBpas le nombre de tous les utilisateurs bd, mais seulement celles qui sont connecté à ma base de données qui n'a qu'un seul tableau.
source d'informationauteur Frank
Vous devez vous connecter pour publier un commentaire.
En fonction de votre version de MySQL, vous pouvez effectuer une sélection sur
SELECT COUNT(*) FROM information_schema.PROCESSLIST;
et vous pouvez faire un
where
entre l'utilisateur, la base de données et IP de l'hôte.Par exemple:
Vous pouvez utiliser la commande MySQL
show processlist
pour obtenir le nombre de connexions.Cependant que vais aussi vous montrer les connexions effectuées avec le même nom d'utilisateur pour la base de données qui ne peut pas venir à partir de votre servlet.
En général, je dirais que vous êtes probablement mieux d'utiliser un Pool de Connexion de l'objet (voir http://java-source.net/open-source/connection-pools) pour gérer vos connexions au serveur MySQL. Cela peut augmenter les performances en faisant DB connexions persistantes, si vous n'avez toujours pas la surcharge d'une nouvelle connexion DB pour chaque chargement de la page.
Si votre servlet besoins de connaître le nombre de connexions, alors votre Pool de Connexion devrait venir avec une méthode qui vous indique le nombre de connexions actives.
afficher l'état comme "Threads_connected'
ou
show global comme l'état de l' 'Threads_connected'
Pas sûr au sujet de la différence entre les deux dans un contexte utilisateur, et vous pourriez encore souffrir de ce problème que vous pouvez voir toutes les connexions, et pas seulement ceux de votre application.
vous pouvez même vérifier Threads_running de ne voir que les threads en cours d'exécution (e.g ne pas dormir).
Exécuter la requête suivante, il fait la liste nom de l'hôte et non. des connexions de chaque hôte:
SÉLECTIONNEZ l'hôte,le comte(host) à PARTIR de information_schema.processlist GROUPE PAR l'animateur;
show processlist
Vous pouvez uniquement sélectionner
Information_Schema.Processlist
les données qui vous appartient. Cela signifie que vous pouvez l'utiliser pour la surveillance UNIQUEMENT si vous êtes connecté en tant que root, sinon vous allez voir les connexions venant de votre utilisateur, vous avez ouvert une session.Si vous voulez une bonne surveillance de SQL, il sera:
Vous pouvez utiliser ce
MONTRER LA SITUATION MONDIALE;
ou
montrer la situation mondiale comme "Threads_connected";
de statut des Connexions vous pouvez trouver nombre total de connexions.
Vous pouvez également compter connexion ouverte par montrer l'état de
Threads_connected
nom de la variable comme ceci:Ou vous pouvez également compter la liste des processus directement à partir de
information_schema.PROCESSLIST
comme ci-dessous: