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?

Michael
sumber

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)
kiiwii
sumber
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.

mistahenry
sumber
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
Pranab Sharma
sumber
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;
Mugur 'Bud' Chirica
sumber
12

Anda juga bisa melakukannya

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';
saurabh
sumber
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.

Mujtaba
sumber
-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!

Haha
sumber
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