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.