Database show processlist
현재 실행중인 작업을 보여준다
db
Examples
MySQL
-- 서버 내에서 실행중인 스레드 집합에서 현재 수행중인 작업을 보여준다
-- 단 Info 를 100 자까지만 보여준다
SHOW PROCESSLIST;
-- Info 전체를 보여준다
SHOW FULL PROCESSLIST;
-- 다음과 같이 실행해도 같은 결과를 얻을 수 있다
SELECT *
FROM information_schema.processlist
ORDER BY id;
위의 명령을 실행하면 나오는 결과는 다음과 같은 스키마를 갖는다.
Id | User | Host | db | Command | Time | State | Info |
---|---|---|---|---|---|---|---|
18 | admin | 172.20.0.1:54670 | test | Query | 0 | init | SHOW PROCESSLIST |
19 | admin | 172.20.0.1:54674 | NULL | Sleep | 24 | NULL |
만약 Command = Sleep
인 경우를 제외하고 보고 싶다면 WHERE
를 사용하면 된다.
SELECT * FROM information_schema.processlist
WHERE command != 'Sleep';
각 필드의 의미
Id
: Connection Identifier. 연결 아이디.
SELECT CONNECTION_ID()
와 같다.
Command
: 스레드 실행중인 명령 타입을 의미한다. 자세한 내용은 8.14.2 Thread Command Values 문서를 참고.
Sleep
: 클라이언트가 새로운 명령을 보내길 기다리고 있음.Query
: 클라이언트의 쿼리 실행.Kill
: 이 스레드는 다른 스레드를 kill 하고 있음.- …
Time
: 스레드가 현재 상태를 유지한 시을 seconds
단위로 나타낸 값.
Info
: 스레드가 실행중인 명령을 보여준다.
Kill 명령의 사용
processlist
명령으로 알아낸 프로세스 아이디를 Kill
명령과 함께 사용하면 해당 프로세스 kill 예약을 걸 수 있다.
KILL 23414;