[MySQL] SHOW PROCESSLIST 명령
- Databases/MySQL
- 2020. 10. 28.
■ SHOW PROCES 문법
사용법 : SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST는 실행중인 스레드를 보여줍니다. PROCESS 권한이 있으면 다른 사용자에게 속한 스레드까지 모든 스레드를 볼 수 있습니다. 그렇지 않으면 (PROCESS없이) 비 익명 사용자는 자신의 스레드에 대한 정보에 액세스 할 수 있지만 다른 사용자의 스레드에는 액세스 할 수 없으며 익명 사용자는 스레드 정보에 액세스 할 수 없습니다.
FULL 키워드가 없으면 각 문장의 처음 100 자만 정보 필드에 표시됩니다.
SHOW PROCESSLIST 명령문은“too many connections”오류 메시지가 표시되고 현재 진행중인 작업을 찾으려면 매우 유용합니다. MySQL은 SUPER 권한이 있는 계정에서 사용할 수 있도록 하나의 추가 연결을 예약하여 관리자가 항상 시스템을 연결하고 확인할 수 있도록합니다 (모든 사용자에게이 권한을 부여하지 않은 경우).
스레드는 KILL 문으로 종료될 수 있습니다.
SHOW PROCESSLIST 명려문 출력 예제
mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 1030455
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 1004
State: Has read all relay log; waiting for the slave
I/O thread to update it
Info: NULL
*************************** 3. row ***************************
Id: 3112
User: replikator
Host: artemis:2204
db: NULL
Command: Binlog Dump
Time: 2144
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
*************************** 4. row ***************************
Id: 3113
User: replikator
Host: iconnect2:45781
db: NULL
Command: Binlog Dump
Time: 2086
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
*************************** 5. row ***************************
Id: 3123
User: stefan
Host: localhost
db: apollon
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
5 rows in set (0.00 sec)
SHOW PROCESSLIST output has these columns:
+ User
명령문을 발행한 MySQL 사용자. 시스템 사용자의 값은 지연 행 핸들러 스레드(a delayed-row handler thread) 또는 복제본 호스트에서 사용되는 I/O 또는 SQL 스레드와 같이 내부적으로 태스크를 처리하기 위해 서버가 생성한 비 클라이언트 스레드를 나타냅니다. 시스템 사용자의 경우 호스트 컬럼에 지정된 호스트가 없습니다. 인증되지 않은 사용자는 클라이언트 연결과 연관되었지만 클라이언트 사용자의 인증이 아직 수행되지 않은 스레드를 나타냅니다. event_scheduler는 예약된 이벤트를 모니터링하는 스레드를 나타냅니다.
+ Host
명령문을 발행하는 클라이언트의 호스트 이름입니다 (호스트가없는 시스템 사용자 제외). TCP/IP 연결의 호스트 이름은 host_name:client_port 형식으로 보고되어 어떤 클라이언트가 무엇을하고 있는지 쉽게 확인할 수 있습니다.
+ db
스레드의 기본 데이터베이스이거나, 선택하지 않은 경우 NULL입니다.
+ Command
스레드가 클라이언트 대신 실행중인 명령 유형이거나 세션이 유휴 상태인 경우 절전 모드입니다. 이 컬럼의 값은 클라이언트/서버 프로토콜의 COM_xxx 명령 및 Com_xxx 상태 변수에 해당합니다.
+ Time
스레드가 현재 상태에 있었던 시간(초)입니다. 복제본 SQL 스레드의 경우 값은 마지막 복제된 이벤트의 시간 소인과 복제본 호스트의 실시간 시간 사이의 시간(초)입니다.
+ State
스레드가 수행중인 작업을 나타내는 조치, 이벤트 또는 상태입니다. 상태 값에 대한 설명은 8.14 절.“검사 스레드 정보”를 참조하십시오.
대부분의 상태는 매우 빠른 작업에 해당합니다. 스레드가 몇 초 동안 주어진 상태를 유지하는 경우 조사해야 할 문제가있을 수 있습니다.
+ Info
스레드가 실행중인 명령문이거나 명령문을 실행하지 않는 경우 NULL입니다. 명령문은 서버로 전송 된 명령문이거나 명령문이 다른 명령문을 실행하는 경우 가장 안쪽 명령문 일 수 있습니다. 예를 들어, CALL 문이 SELECT 문을 실행하는 스토어드 프로 시저를 실행하는 경우 Info 값은 SELECT 문을 표시합니다.
+ ID
연결 식별자. 이는 INFORMATION_SCHEMA PROCESSLIST 테이블의 ID 컬럼, 성능 스키마 스레드 테이블의 PROCESSLIST_ID 컬럼에 표시되는 동일한 값이며 스레드 내의 CONNECTION_ID() 함수에 의해 리턴됩니다.
프로세스 정보는 mysqladmin processlist 명령 (4.5.2 절“mysqladmin — MySQL 서버 관리 클라이언트”참조), INFORMATION_SCHEMA PROCESSLIST 테이블 (24.18 절“Information_SCHEMA PROCESSLIST 테이블”참조) 및 성능 스키마에서도 사용할 수 있습니다. 스레드 테이블 (섹션 25.12.16.3,“스레드 테이블”참조). 스레드 테이블에 액세스 할 때 뮤텍스가 필요하지 않으며 다른 스레드 정보 소스와 달리 뮤텍스가 필요하기 때문에 성능에 부정적인 영향을 미치는 다른 스레드 정보 소스와 달리 서버 성능에 미치는 영향이 최소화됩니다. 스레드 테이블에는 다른 소스가 아닌 백그라운드 스레드에 대한 정보도 표시됩니다. 이것은 스레드가 다른 소스가 할 수없는 스레드 활동을 모니터하는 데 사용될 수 있음을 의미합니다.
'Databases > MySQL' 카테고리의 다른 글
[MySQL] REPAIR TABLE 최적화 문법 (0) | 2020.11.02 |
---|---|
[MySQL] Optimize Table & Analyze Table (0) | 2020.10.30 |
[MySQL] Table Column 정보확인 (0) | 2020.10.27 |
[MySQL] SHOW VARIABLES 명령 (0) | 2020.10.26 |
[MySQL] Show Warning, Show Error 명령 (0) | 2020.10.25 |