Status pertunjukkan MySQL - koneksi aktif atau total?


206

Ketika saya menjalankannya show status like 'Con%'menunjukkan jumlah koneksi, yaitu 9972 dan terus bertambah. Apakah ini jumlah koneksi aktif atau koneksi total?

Jawaban:


402

Menurut dokumen , itu berarti jumlah total sepanjang sejarah:

Connections

Jumlah upaya koneksi (berhasil atau tidak) ke server MySQL.

Anda dapat melihat jumlah koneksi aktif baik melalui Threads_connectedvariabel status:

Threads_connected

Jumlah koneksi yang sedang terbuka.

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

... atau melalui show processlistperintah:

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)

Apakah koneksi mewakili pengguna? Jadi, jika ada 200 pengguna pada halaman yang membuat permintaan basis data akan 200 koneksi?
— Diego Queiroz

Ya, bisakah seseorang menjelaskannya. Saya juga punya pertanyaan yang sama. Juga, apakah variabel-variabel ini mereset setelah setiap Layanan MySQL restart atau setelah Server reboot?
— LonelyRogue

@Diego Queiroz Tidak sesederhana itu. Jika pengembang sama-sama memperhatikan dan jika hanya ada 1 database yang perlu dihubungkan ke per pengguna, maka ya, masing-masing akan menjadi pengguna. Tetapi mungkin ada utilitas lain yang menjalankan atau layanan cadangan yang juga perlu disambungkan.
— Ryan Shillington

@LonelyRogue Ya, setelah server dinyalakan kembali, setiap koneksi harus terhubung kembali. Banyak program / perpustakaan akan terhubung secara otomatis sehingga # koneksi dapat terisi dengan cepat tanpa secara eksplisit melakukan apa pun. Tetapi MySQL tidak akan menyimpan koneksi lama setelah restart.
— Ryan Shillington

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

Ini akan menunjukkan kepada Anda semua koneksi terbuka.


17

Ini adalah jumlah total koneksi ke server sampai sekarang. Untuk menemukan status koneksi saat ini, Anda dapat menggunakan

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

Ini akan menunjukkan kepada Anda:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

Untuk melihat daftar yang lebih lengkap, Anda dapat menjalankan:

show session status;

atau

show global status;

Lihat tautan ini untuk lebih memahami penggunaannya.

Jika Anda ingin mengetahui detail tentang database Anda dapat menjalankan:

status;

12

Anda juga bisa melakukannya

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connectionsjuga berguna
— coolnodje

3

Untuk memeriksa koneksi maksimum yang diizinkan, Anda dapat menjalankan kueri berikut:

SHOW VARIABLES LIKE "max_connections";

Untuk memeriksa jumlah koneksi aktif, Anda dapat menjalankan kueri berikut:

SHOW VARIABLES LIKE "max_used_connections";

Semoga ini bisa membantu.



-1

Seharusnya jumlah koneksi aktif saat ini. Jalankan perintah processlistuntuk memastikan.

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

EDIT: Jumlah koneksi DB yang dibuka Silakan lihat di sini, jumlah utas (koneksi) aktual dijelaskan di sini!


2
Saya menemukan tautan referensi bermanfaat. Misalnya, show status like '%onn%';permintaan yang sangat berguna.
— viddik13

1
Jawaban ini salah dan harus dihapus. Lihat jawaban lainnya.
— dr_

Dari dev.mysql.com/doc/refman/8.0/en/… : "Jumlah upaya koneksi (berhasil atau tidak) ke server MySQL". Ini BUKAN jumlah koneksi aktif.
— PYB
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.