MySQL mostra lo stato - connessioni attive o totali?


206

Quando eseguo show status like 'Con%'mostra il numero di connessioni, che è 9972 e in costante crescita. È un numero attivo di connessioni o connessioni effettuate in totale?

Risposte:


402

Secondo i documenti , significa il numero totale nel corso della storia:

Connections

Il numero di tentativi di connessione (riusciti o meno) al server MySQL.

Puoi vedere il numero di connessioni attive tramite la Threads_connectedvariabile status:

Threads_connected

Il numero di connessioni attualmente aperte.

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

... o tramite il show processlistcomando:

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)

Una connessione rappresenta un utente? Quindi se ci sono 200 utenti su una pagina che fa query sul database ci saranno 200 connessioni?
Diego Queiroz,

Sì, qualcuno può chiarirlo. Anch'io ho la stessa domanda. Inoltre, queste variabili vengono ripristinate dopo ogni riavvio di MySQL Services o dopo il riavvio del server?
LonelyRogue

@Diego Queiroz Non è così semplice. Se lo sviluppatore ha prestato molta attenzione e se c'è solo 1 database a cui deve essere collegato per utente, allora sì, ognuno di questi sarà un utente. Ma è possibile che ci siano altre utility in esecuzione o servizi di backup che dovranno anche connettersi.
Ryan Shillington,

@LonelyRogue Sì, dopo il riavvio del server, è necessario riconnettere ogni connessione. Molti programmi / librerie si collegheranno automaticamente, quindi il numero di connessioni potrebbe riempirsi rapidamente senza fare esplicitamente nulla. Ma MySQL non manterrà alcuna vecchia connessione dopo il riavvio.
Ryan Shillington,

134
SHOW STATUS WHERE `variable_name` = 'Threads_connected';

Questo ti mostrerà tutte le connessioni aperte.


17

Questo è il numero totale di connessioni al server fino ad ora. Per trovare lo stato di connessione corrente è possibile utilizzare

mysqladmin -u -p extended-status | grep -wi 'thread_connected \ | thread_running' | awk "{stampa $ 2, $ 4}"

Questo ti mostrerà:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

Per visualizzare un elenco più completo puoi eseguire:

show session status;

o

show global status;

Vedi questo link per capire meglio l'uso.

Se vuoi conoscere i dettagli sul database puoi eseguire:

status;

12

Puoi anche fare

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connectionsè anche utile
coolnodje il

3

Per verificare le connessioni massime consentite, è possibile eseguire la seguente query:

SHOW VARIABLES LIKE "max_connections";

Per verificare il numero di connessioni attive, è possibile eseguire la seguente query:

SHOW VARIABLES LIKE "max_used_connections";

Spero che sia d'aiuto.



-1

Dovrebbe essere il numero corrente di connessioni attive. Esegui il comando processlistper assicurarti.

URL di riferimento: http://www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

EDIT: numero di connessioni DB aperte Si prega di dare un'occhiata qui, il numero effettivo di thread (connessioni) sono descritti qui!


2
Ho trovato utili i link di riferimento. Ad esempio, show status like '%onn%';è una query molto utile.
viddik13,

1
Questa risposta è errata e dovrebbe essere eliminata. Vedi le altre risposte.
dr_

Da dev.mysql.com/doc/refman/8.0/it/… : "Il numero di tentativi di connessione (riusciti o meno) al server MySQL". NON è il numero di connessioni attive.
PYB,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.