概要
MySQLのコネクション一覧を更新するSQLになります。下記SQLだと、Sleepとかのステータスももってきてしまいますが、
そのあたりは、適宜条件を追加していただければと思います。
定義
mysql> desc information_schema.processlist ;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ID | bigint(4) | NO | | 0 | |
| USER | varchar(16) | NO | | | |
| HOST | varchar(64) | NO | | | |
| DB | varchar(64) | YES | | NULL | |
| COMMAND | varchar(16) | NO | | | |
| TIME | int(7) | NO | | 0 | |
| STATE | varchar(64) | YES | | NULL | |
| INFO | longtext | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
SQL
select
'[' || RTRIM(IFNULL(X.db,'N/A')) || ']' || RTRIM(X.host) || '@' || RTRIM(count(X.id)) AS CLIENT_NAME
from
(
select
replace(host,mid(host,instr(host,':'),length(host)),'') as host,
db,
id
from
information_schema.processlist
) as X
group by
X.db,
X.host
order by
X.db asc,
X.host asc;
出力結果
@以降がコネクション数
[]がホスト名
といった感じで表示しております。
CLIENT_NAME
----------------------------------
[N/A]@2
[N/A]192.168.0.249@1
[N/A]localhost@1
[master]192.168.0.126@20
[master]192.168.0.127@20
[master]192.168.0.128@20
[master]192.168.0.129@20
[master]192.168.0.130@20
[master]192.168.0.135@20
[master]192.168.0.136@20
[master]192.168.0.137@20
[master]192.168.0.138@20
[master]192.168.0.140@2
[master]192.168.0.144@21
[master]192.168.0.147@10
[master]192.168.0.167@20
[master]192.168.0.168@20
[master]192.168.0.184@20
[master]192.168.0.185@20