Statut d'affichage de MySQL - connexions actives ou totales?

206

Lorsque je lance, show status like 'Con%'il montre le nombre de connexions, qui est 9972 et qui augmente constamment. S'agit-il d'un nombre actif de connexions ou de connexions effectuées au total?

Michael
la source

Réponses:

402

Selon les documents , cela signifie le nombre total tout au long de l'histoire:

Connections

Le nombre de tentatives de connexion (réussies ou non) au serveur MySQL.

Vous pouvez voir le nombre de connexions actives via la Threads_connectedvariable d'état:

Threads_connected

Nombre de connexions actuellement ouvertes.

mysql> show status where `variable_name` = 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 4     |
+-------------------+-------+
1 row in set (0.00 sec)

... ou via la show processlistcommande:

mysql> show processlist;
+----+------+-----------------+--------+---------+------+-------+------------------+
| Id | User | Host            | db     | Command | Time | State | Info             |
+----+------+-----------------+--------+---------+------+-------+------------------+
|  3 | root | localhost       | webapp | Query   |    0 | NULL  | show processlist | 
|  5 | root | localhost:61704 | webapp | Sleep   |  208 |       | NULL             | 
|  6 | root | localhost:61705 | webapp | Sleep   |  208 |       | NULL             | 
|  7 | root | localhost:61706 | webapp | Sleep   |  208 |       | NULL             | 
+----+------+-----------------+--------+---------+------+-------+------------------+
4 rows in set (0.00 sec)
kiiwii
la source
Une connexion représente-t-elle un utilisateur? Donc, s'il y a 200 utilisateurs sur une page qui fait des requêtes de base de données, ce sera 200 connexions?
Diego Queiroz
Oui, quelqu'un peut-il le clarifier. J'ai moi aussi la même question. De plus, ces variables sont-elles réinitialisées après chaque redémarrage des services MySQL ou après le redémarrage du serveur?
LonelyRogue
@Diego Queiroz Ce n'est pas si simple. Si le développeur a fait très attention et s'il n'y a qu'une seule base de données à laquelle il faut se connecter par utilisateur, alors oui, chacun d'entre eux sera un utilisateur. Mais il est possible qu'il existe d'autres utilitaires en cours d'exécution ou des services de sauvegarde qui devront également se connecter.
Ryan Shillington
@LonelyRogue Oui, après le redémarrage du serveur, chaque connexion doit se reconnecter. De nombreux programmes / bibliothèques se connecteront automatiquement afin que le nombre de connexions puisse se remplir rapidement sans rien faire explicitement. Mais MySQL ne conservera aucune ancienne connexion après un redémarrage.
Ryan Shillington
134
SHOW STATUS WHERE `variable_name` = 'Threads_connected';

Cela vous montrera toutes les connexions ouvertes.

mistahenry
la source
17

Il s'agit du nombre total de connexions au serveur jusqu'à présent. Pour trouver l'état de connexion actuel, vous pouvez utiliser

mysqladmin -u -p statut-étendu | grep -wi 'threads_connected \ | threads_running' | awk '{print $ 2, $ 4}'

Cela vous montrera:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql
Pranab Sharma
la source
13

Pour voir une liste plus complète, vous pouvez exécuter:

show session status;

ou

show global status;

Consultez ce lien pour mieux comprendre l'utilisation.

Si vous souhaitez connaître les détails de la base de données, vous pouvez exécuter:

status;
Mugur 'Bud' Chirica
la source
12

Vous pouvez aussi faire

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';
saurabh
la source
1
max_used_connectionsest également utile
coolnodje
3

Afin de vérifier le nombre maximal de connexions autorisées, vous pouvez exécuter la requête suivante:

SHOW VARIABLES LIKE "max_connections";

Pour vérifier le nombre de connexions actives, vous pouvez exécuter la requête suivante:

SHOW VARIABLES LIKE "max_used_connections";

J'espère que ça aide.

Mujtaba
la source
-1

Il doit s'agir du nombre actuel de connexions actives. Exécutez la commande processlistpour vous en assurer.

URL de référence: http://www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

EDIT: Nombre de connexions DB ouvertes Veuillez jeter un œil ici, le nombre réel de threads (connexions) est décrit ici!

ChrisH
la source
2
J'ai trouvé les liens de référence utiles. Par exemple, show status like '%onn%';est une requête très utile.
viddik13
1
Cette réponse est fausse et devrait être supprimée. Voir les autres réponses.
dr_
Depuis dev.mysql.com/doc/refman/8.0/en/… : "Le nombre de tentatives de connexion (réussies ou non) au serveur MySQL". Ce n'est PAS le nombre de connexions actives.
PYB