mysql 에서 기본적으로 지원하는 processlist 를 사용하다가
너무나도 뒤늦게 깨닳은 바가 있기에…
세상에 이걸 이렇게 모르고 살 수 있었던가 싶기도 하네…
출처
https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html
보통 프로세스 목록을 확인하는 경우
mysql> show processlist;
로 확인 하며
결과는
———+—————–+———–+——————–+———+———+————————+——————+
| Id | User | Host | db | Command | Time | State | Info |
+———+—————–+———–+——————–+———+———+————————+——————+
| 4 | event_scheduler | localhost | | Daemon | 3937394 | Waiting on empty queue | |
| 1566520 | root | localhost | test_db | Sleep | 702 | | |
| 1568887 | root | localhost | | Query | 0 | starting | show processlist |
+———+—————–+———–+——————–+———+———+————————+——————+
이러한 형태로 출력되며
실제 수행되는 SQL은 “Info” 필드에 표시된다.
허나 SQL문이 장문일 경우 뒤가 잘리게 되는데
보다 정확하게 확인하기 위해서는 다른 tool 을 사용했었던것….
그런데 mysql 레퍼런스를 확인해보니
13.7.6.29 SHOW PROCESSLIST Syntax
SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST shows which threads are running. If you have the PROCESS privilege, you can see all threads. Otherwise, you can see only your own threads (that is, threads associated with the MySQL account that you are using). If you do not use the FULL keyword, only the first 100 characters of each statement are shown in the Info field.
요러한 내용이 있었던것…
길면 잘리는 이유 : 100자 제한
이를 해결하는 방법 : “show full process” 사용
헐… 이걸 몰랐다니!!!
mysql공식 페이지에서 찾을 수 있는
8.0 이전 5.7, 5.6, 5.5 까지 확인해보니 모두 “full” 사용이 가능한 것이었다.. ㄷ ㄷ ㄷ
정확히 몇버전 부터 지원했는지 모르겠으나
5.5보다 훨씬 이전부터 지원을 했을것 같다는 생각에… 참으로 허탈하고 어리석은.. ㅋ
아.. 추가로 찾아보니 4.1 까지는 메뉴얼에 확실히 기억이 있고
같이 일하시는 분이 3.23에서도 사용을 해오셨단다.. ㄷ ㄷ ㄷ ㄷ
이걸 근 20년 동안 모르고 있었던 거시야!!!!!
본 내용을 mysql 콘솔이 아닌
mysqladmin 에서 사용하는 경우에는
mysqladmin -uroot -p –verbose processlist
즉, –verbose 옵션을 추가 해주면 되겠다.
이제부터 FULL 을 활용하자고… ㅋ
Leave a Reply