MySQL 서버에 접속된 사용자의 목록이나 각 클라이언트 사용자가 현재 어떤 쿼리를 실행하고 있는지는 SHOW PROCESSLIST
명령으로 확인할 수 있다.
1
2
3
4
5
6
7
8
9
10
| SHOW PROCESSLIST;
/*
+----+-----------------+-----------+-----------+---------+--------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------+-----------+---------+--------+------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 514030 | Waiting on empty queue | NULL |
| 9 | root | localhost | employees | Query | 0 | init | SHOW PROCESSLIST |
+----+-----------------+-----------+-----------+---------+--------+------------------------+------------------+
*/
|
활용
MySQL 서버가 어떤 상태인지를 판단하는 데도 많은 도움이 된다.
- 일반적으로 쾌적한 상태로 서비스되는 MySQL에서는 대부분의 프로세서의 Command 컬럼이 Sleep 상태로 표시된다.
- 컬럼 값이 Query 이면서 Time이 상당히 큰 값을 가지고 있다면 쿼리가 장시간 실행되고 있음을 의미한다.
State 컬럼
State 컬럼에 표시될 수 있는 값의 종류는 다양하며 주의깊게 살펴야하는 항목은 다음과 같다.
해당 값으로 시작하는 문장이 표시되는 경우 주의 깊게 살펴봐야 한다.
강제 종료
Id 컬럼값은 접속된 커넥션의 요청을 처리하는 전용 스레드의 번호를 의미하며 KILL ...
으로 쿼리나 커넥션을 강제 종료할 수 있다.
1
2
3
4
5
| /* 쿼리 강제 종료, 커넥션 유지 */
KILL QUERY 4228;
/* 쿼리 및 커넥션 강제 종료 */
KILL 4228;
|