Pokaż status MySQL - aktywne czy łączne połączenia?


206

Po uruchomieniu show status like 'Con%'pokazuje liczbę połączeń, która wynosi 9972 i stale rośnie. Czy jest to aktywna liczba połączeń lub połączeń wykonanych łącznie?

Odpowiedzi:


401

Według dokumentów oznacza to całkowitą liczbę w historii:

Connections

Liczba prób połączenia (udanych lub nie) z serwerem MySQL.

Liczbę aktywnych połączeń możesz zobaczyć poprzez Threads_connectedzmienną statusu:

Threads_connected

Liczba aktualnie otwartych połączeń.

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

... lub za pomocą show processlistpolecenia:

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)

Czy połączenie reprezentuje użytkownika? Więc jeśli na stronie, na której jest 200 użytkowników, zapytania do bazy danych będą 200 połączeniami?
Diego Queiroz

Tak, czy ktoś może to wyjaśnić. Ja też mam to samo pytanie. Czy te zmienne są resetowane po każdym ponownym uruchomieniu usług MySQL lub po ponownym uruchomieniu serwera?
LonelyRogue

@Diego Queiroz To nie takie proste. Jeśli zarówno programista zwrócił szczególną uwagę i jeśli istnieje tylko jedna baza danych, z którą należy się połączyć na użytkownika, to tak, każda z nich będzie użytkownikiem. Ale możliwe jest, że działają inne narzędzia lub usługi tworzenia kopii zapasowych, które również będą musiały się połączyć.
Ryan Shillington

@LonelyRogue Tak, po ponownym uruchomieniu serwera każde połączenie musi zostać ponownie połączone. Wiele programów / bibliotek łączy się automatycznie, więc liczba połączeń może się szybko zapełnić bez wyraźnego działania. Ale MySQL nie zachowa żadnych starych połączeń po restarcie.
Ryan Shillington

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

Spowoduje to wyświetlenie wszystkich otwartych połączeń.


17

Jest to łączna liczba połączeń z serwerem do tej pory. Aby znaleźć aktualny status połączenia, możesz użyć

mysqladmin -u -p status rozszerzony | grep -wi 'Thread_connected \ | Thread_Running' | awk „{drukuj 2 USD, 4 USD}”

To pokaże ci:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

Aby zobaczyć pełniejszą listę, możesz uruchomić:

show session status;

lub

show global status;

Zobacz ten link, aby lepiej zrozumieć użycie.

Jeśli chcesz poznać szczegóły dotyczące bazy danych, możesz uruchomić:

status;

11

Możesz też zrobić

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connectionsjest również przydatny
coolnodje

3

Aby sprawdzić maksymalną dozwoloną liczbę połączeń, możesz uruchomić następujące zapytanie:

SHOW VARIABLES LIKE "max_connections";

Aby sprawdzić liczbę aktywnych połączeń, możesz uruchomić następujące zapytanie:

SHOW VARIABLES LIKE "max_used_connections";

Mam nadzieję, że to pomoże.



-1

Powinna to być bieżąca liczba aktywnych połączeń. Uruchom polecenie, processlistaby się upewnić.

Adres URL w celach informacyjnych: http://www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

EDYCJA: Liczba otwartych połączeń DB Proszę spojrzeć tutaj, rzeczywista liczba wątków (połączeń) została opisana tutaj!


2
Uważam, że linki referencyjne są przydatne. Na przykład show status like '%onn%';jest bardzo przydatnym zapytaniem.
viddik13

1
Ta odpowiedź jest błędna i powinna zostać usunięta. Zobacz inne odpowiedzi.
dr_

Od dev.mysql.com/doc/refman/8.0/en/… : „Liczba prób połączenia (udanych lub nie) z serwerem MySQL”. To NIE jest liczba aktywnych połączeń.
PYB,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.