Loading...
MySQL 9.5 Reference Manual 9.5의 28.3.28 The INFORMATION_SCHEMA PROCESSLIST Table의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
중요
INFORMATION_SCHEMA.PROCESSLIST 는 deprecated 되었으며 향후 MySQL release 에서 제거될 예정입니다. 따라서 이 테이블을 사용하는
SHOW PROCESSLIST 의 구현 역시 deprecated 되었습니다. 대신 Performance Schema 구현인
PROCESSLIST 를 사용하는 것이 권장됩니다.
MySQL process list 는 서버 내에서 실행 중인 스레드 집합이 현재 수행하고 있는 작업을 나타냅니다. PROCESSLIST 테이블은 process 정보를 제공하는 소스 중 하나입니다.
이 테이블과 다른 소스를 비교하려면, Sources of Process Information 를 참조하십시오.
PROCESSLIST 테이블에는 다음과 같은 column 이 있습니다:
ID연결 식별자입니다. 이는
SHOW PROCESSLIST statement 의 Id column 에 표시되는 값과 같고, Performance Schema threads 테이블의 PROCESSLIST_ID column 에 표시되며, 스레드 내에서 CONNECTION_ID() function 이 반환하는 값입니다.
USERstatement 를 실행한 MySQL 사용자입니다.
system user 값은 서버가 내부 작업을 처리하기 위해 생성한 논클라이언트 스레드를 나타냅니다. 예를 들어, 지연된 row 를 처리하는 핸들러 스레드나 replica 호스트에서 사용되는 I/O 또는 SQL 스레드입니다. system user 의 경우 Host column 에 host 가 지정되지 않습니다.
unauthenticated user 는 클라이언트 커넥션과 연관되었지만 아직 클라이언트 사용자의 인증이 완료되지 않은 스레드를 나타냅니다. event_scheduler 는 예약된 event 를 모니터링하는 스레드를 나타냅니다 (참조: Section 27.5, “Using the Event Scheduler”).
참고
USER 값인 system user 는
SYSTEM_USER privilege 와는 다릅니다. 전자는 내부 스레드를 지정합니다. 후자는 system user 와 일반 사용자 계정 카테고리를 구분합니다 (참조: Section 8.2.11, “Account Categories”).
HOSTstatement 를 실행하는 클라이언트의 호스트 이름입니다 (system user 의 경우에는 host 가 없습니다). TCP/IP 커넥션의 호스트 이름은
host_name:client_port 형식으로 보고되어 어떤 클라이언트가 무엇을 하는지 더 쉽게 파악할 수 있습니다.
DB스레드의 기본 데이터베이스이며, 선택되지 않은 경우에는 NULL 입니다.
COMMAND스레드가 클라이언트를 대신하여 실행 중인 커맨드의 타입이며, 세션이 idle 인 경우 Sleep 입니다. 스레드 커맨드에 대한 설명은 Section 10.14, “Examining Server Thread (Process) Information” 을 참조하십시오.
이 column 의 값은 클라이언트/서버 프로토콜의
COM_xxx 커맨드와
Com_xxx 상태 변수에 대응합니다. Section 7.1.10, “Server Status Variables” 을 참조하십시오.
TIME스레드가 현재 state 에 머무른 시간(초 단위)입니다. replica SQL 스레드의 경우, 이 값은 마지막으로 복제된 event 의 timestamp 와 replica 호스트의 실제 시간 사이의 초 단위 차이입니다. Section 19.2.3, “Replication Threads” 를 참조하십시오.
STATE스레드가 무엇을 하고 있는지를 나타내는 액션, event 또는 state 입니다. STATE 값에 대한 설명은 Section 10.14, “Examining Server Thread (Process) Information” 을 참조하십시오.
대부분의 state 는 매우 빠른 작업에 해당합니다. 스레드가 특정 state 에 여러 초 동안 머무르면 조사가 필요한 문제가 있을 수 있습니다.
INFO스레드가 실행 중인 statement 이며, 아무 statement 도 실행하지 않을 경우 NULL 입니다. 이 statement 는 서버로 전송된 statement 이거나, 그 statement 가 다른 statement 를 실행하는 경우 가장 안쪽의 statement 일 수 있습니다.
예를 들어, CALL statement 가 stored procedure 를 실행하고, 그 stored procedure 가 SELECT statement 를 실행하고 있다면, INFO 값은 SELECT statement 를 보여줍니다.
PROCESSLIST 는 표준이 아닌 INFORMATION_SCHEMA 테이블입니다.
SHOW PROCESSLIST statement 의 결과와 마찬가지로, PROCESSLIST 테이블은
PROCESS privilege 가 있는 경우 다른 사용자의 스레드를 포함하여 모든 스레드에 대한 정보를 제공합니다.
그렇지 않은 경우 (PROCESS privilege 가 없는 경우), 익명 사용자가 아닌 사용자는 자신의 스레드에 대한 정보에는 액세스 할 수 있지만 다른 사용자의 스레드에는 액세스 할 수 없으며, 익명 사용자는 스레드 정보에 대한 액세스 권한이 없습니다.
PROCESSLIST 테이블을 참조하면, MySQL 은 statement 실행이 시작될 때 전체 테이블을 한 번 채워, statement 동안 읽기 일관성을 보장합니다. 멀티스테이트먼트 트랜잭션에 대해서는 읽기 일관성이 제공되지 않습니다.다음 statement 는 동등합니다:
1SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 2 3SHOW FULL PROCESSLIST
이 테이블의 사용에 대한 정보를 얻으려면 서버 상태 변수인
Deprecated_use_i_s_processlist_count 와
Deprecated_use_i_s_processlist_last_timestamp 값을 확인하면 됩니다.
Deprecated_use_i_s_processlist_count 는 마지막 서버 재시작 이후 PROCESSLIST 테이블에 액세스 한 횟수를 보여 줍니다. Deprecated_use_i_s_processlist_last_timestamp 는 Unix timestamp 로, 이 테이블에 마지막으로 액세스 한 시간을 제공합니다.
28.3.27 The INFORMATION_SCHEMA PLUGINS Table
28.3.29 The INFORMATION_SCHEMA PROFILING Table