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.