MySQL Status anzeigen - aktive oder vollständige Verbindungen?


206

Wenn ich show status like 'Con%'starte, wird die Anzahl der Verbindungen angezeigt, die 9972 beträgt und ständig wächst. Ist dies eine aktive Anzahl von Verbindungen oder Verbindungen, die insgesamt hergestellt wurden?

Antworten:


401

Laut den Dokumenten bedeutet dies die Gesamtzahl im Verlauf der Geschichte:

Connections

Die Anzahl der Verbindungsversuche (erfolgreich oder nicht) zum MySQL-Server.

Sie können die Anzahl der aktiven Verbindungen entweder über die Threads_connectedStatusvariable anzeigen:

Threads_connected

Die Anzahl der aktuell geöffneten Verbindungen.

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

... oder über den show processlistBefehl:

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)

Stellt eine Verbindung einen Benutzer dar? Wenn sich also 200 Benutzer auf einer Seite befinden, die Datenbankabfragen durchführt, sind dies 200 Verbindungen?
— Diego Queiroz

Ja, kann jemand das klären. Ich habe auch die gleiche Frage. Werden diese Variablen auch nach jedem Neustart von MySQL Services oder nach einem Neustart des Servers zurückgesetzt?
— LonelyRogue

@Diego Queiroz So einfach ist das nicht. Wenn der Entwickler genau aufgepasst hat und nur 1 Datenbank pro Benutzer verbunden werden muss, dann ist jede dieser Daten ein Benutzer. Möglicherweise werden jedoch auch andere Dienstprogramme oder Sicherungsdienste ausgeführt, die ebenfalls eine Verbindung herstellen müssen.
— Ryan Shillington

@LonelyRogue Ja, nach dem Neustart des Servers muss jede Verbindung erneut hergestellt werden. Viele Programme / Bibliotheken stellen automatisch eine Verbindung her, sodass sich die Anzahl der Verbindungen möglicherweise schnell füllt, ohne explizit etwas zu tun. Aber MySQL behält nach einem Neustart keine alten Verbindungen bei.
— Ryan Shillington

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

Dies zeigt Ihnen alle offenen Verbindungen.


17

Dies ist die Gesamtzahl der bisherigen Verbindungen zum Server. Um den aktuellen Verbindungsstatus zu ermitteln, können Sie verwenden

mysqladmin -u -p erweiterter-status | grep -wi 'threads_connected \ | threads_running' | awk '{print $ 2, $ 4}'

Dies wird Ihnen zeigen:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

Um eine vollständigere Liste anzuzeigen, können Sie Folgendes ausführen:

show session status;

oder

show global status;

Sehen diesen Link , um die Verwendung besser zu verstehen.

Wenn Sie Details zur Datenbank erfahren möchten, können Sie Folgendes ausführen:

status;

11

Sie können auch tun

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connectionsist auch nützlich
— coolnodje

3

Um die maximal zulässigen Verbindungen zu überprüfen, können Sie die folgende Abfrage ausführen:

SHOW VARIABLES LIKE "max_connections";

Um die Anzahl der aktiven Verbindungen zu überprüfen, können Sie die folgende Abfrage ausführen:

SHOW VARIABLES LIKE "max_used_connections";

Ich hoffe es hilft.



-1

Dies sollte die aktuelle Anzahl der aktiven Verbindungen sein. Führen Sie den Befehl aus processlist, um sicherzustellen, dass.

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

EDIT: Anzahl der geöffneten DB-Verbindungen Bitte schauen Sie hier, die tatsächliche Anzahl der Threads (Verbindungen) wird hier beschrieben!


2
Ich habe die Referenzlinks nützlich gefunden. Zum Beispiel show status like '%onn%';ist eine sehr nützliche Abfrage.
— viddik13

1
Diese Antwort ist falsch und sollte gelöscht werden. Siehe die anderen Antworten.
— dr_

Von dev.mysql.com/doc/refman/8.0/en/… : "Die Anzahl der Verbindungsversuche (erfolgreich oder nicht) zum MySQL-Server". Es ist NICHT die Anzahl der aktiven Verbindungen.
— PYB
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.