MySQLはステータスを表示します-アクティブな接続ですか、それとも合計接続ですか?


206

実行するshow status like 'Con%'と、接続の数が表示されます。これは9972で、常に増加しています。これはアクティブな接続数ですか、それとも合計接続数ですか?

回答:


402

docsによると、これは履歴全体の総数を意味します:

Connections

MySQLサーバーへの接続試行(成功または失敗)の数。

ステータス変数を使用して、アクティブな接続の数を確認できThreads_connectedます。

Threads_connected

現在開いている接続の数。

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

...またはshow processlist次のコマンドを使用します。

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)

接続はユーザーを表しますか?では、データベースクエリを行うページに200人のユーザーがいる場合、接続は200になりますか?
Diego Queiroz

はい、誰かがそれを明確にすることができます。私にも同じ質問があります。また、これらの変数は、MySQLサービスが再起動するたび、またはサーバーを再起動した後にリセットされますか?
LonelyRogue

@Diego Queirozそれはそれほど単純ではありません。開発者が両方とも細心の注意を払っており、ユーザーごとに接続する必要があるデータベースが1つしかない場合は、はい。これらはそれぞれユーザーになります。ただし、接続する必要のある他のユーティリティの実行またはバックアップサービスがある可能性もあります。
ライアンシリントン

@LonelyRogueはい、サーバーの再起動後、すべての接続を再接続する必要があります。多くのプログラム/ライブラリーは自動接続するため、明示的に何もしなくても接続数がすぐにいっぱいになる可能性があります。ただし、MySQLは再起動後に古い接続を保持しません。
ライアンシリントン

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

これにより、開いているすべての接続が表示されます。


17

これまでのサーバーへの接続の総数です。あなたが使用できる現在の接続状態を見つけるために

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

これはあなたを表示します:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

より完全なリストを表示するには、次のコマンドを実行できます。

show session status;

または

show global status;

使用法をよりよく理解するには、このリンクを参照してください。

データベースの詳細を知りたい場合は、次のコマンドを実行できます。

status;

12

あなたもすることができます

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connectionsも便利です
coolnodje 2017

3

許可されている最大接続数を確認するには、次のクエリを実行します。

SHOW VARIABLES LIKE "max_connections";

アクティブな接続の数を確認するには、次のクエリを実行します。

SHOW VARIABLES LIKE "max_used_connections";

それが役に立てば幸い。



-1

現在アクティブな接続の数である必要があります。コマンドprocesslistを実行して確認します。

参照用のURL:http : //www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

編集:開いているDB接続の数ここを見てください、実際のスレッド(接続)の数はここに記述されています!


2
参考リンクが役に立つと思いました。たとえば、show status like '%onn%';は非常に便利なクエリです。
viddik13

1
この回答は誤りであり、削除する必要があります。他の答えを見てください。
dr_ 2016年

dev.mysql.com/doc/refman/8.0/en/…から:「MySQLサーバーへの接続試行(成功または失敗)の数」。アクティブな接続の数ではありません。
PYB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.