Notice
Recent Posts
Recent Comments
준호씨의 블로그
mysql - show processlist 에 where 조건 사용하기 본문
반응형
mysql 에서 현재 클라이언트 커넥션 상태나 현재 동작하고 있는 쿼리 정보 등을 알고 싶을 때, show processlist; 라는 명령어를 이용 할 수 있다.
mysql> show processlist;
+--------+--------+----------------------+-------+---------+-------+--------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+----------------------+-------+---------+-------+--------------+------------------------------------------------------------------------------------------------------+
| 10**** | **** | 10.28.***.***:42828 | ***db | Query | 14267 | Sending data | SELECT /* someQuery */ count(*) FROM some_table W |
...
그런데 Info 내용이 잘려서 전체 쿼리가 나오지 않고 특정 조건에 맞는 항목만 보고 싶을 때가 있다. sql 처럼 where 조건을 사용 할 수 없을까?
(참고로 내용이 잘리는 건 show full processlist; 로 해결 가능 하다.)
show processlist 에서는 불가능 하고 해당 정보가 있는 테이블을 select 하면 된다. time 이 10 초를 초과 했고 Info 내용이 null 이 아닌 내용을 확인 하고 싶으면 다음과 같이 하면 된다.
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time > 10 and info is not null;
mysql> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time > 10 and info is not null;
+--------+------+----------------------+-------+---------+-------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+--------+------+----------------------+-------+---------+-------+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 10**** | **** | 10.28.***.**:42828 | ***db | Query | 14520 | Sending data | SELECT /* someQuery */ count(*) FROM some_table WHERE id = 1164 AND email NOT IN (SELECT email FROM some_table2 WHERE *******_id = 594 AND status = 'C410') |
...
다만 INFORMATION_SCHEMA.PROCESSLIST 테이블은 MySQL 5.1.7 에서 추가 되었기 때문에 오래된 버전에서는 사용 할 수 없다.
참고
how to customize `show processlist` in mysql? 2009.05.30
Chapter 23 The INFORMATION_SCHEMA PROCESSLIST Table
반응형
'개발이야기' 카테고리의 다른 글
IntelliJ - tab 을 space 로 변경하기 (4) | 2016.11.24 |
---|---|
JetBrains ToolBox 를 설치 해봄. Good~ (1) | 2016.11.24 |
perl - n일 전 날짜 구하기. Time::Piece 모듈 이용 (0) | 2016.11.23 |
perl - n일 전 날짜 구하기 (3) | 2016.11.22 |
swift - closures (클로저) (2) | 2016.11.21 |
Comments