Loading...
MySQL 9.5 Reference Manual 9.5의 7.1.10 Server Status Variables의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL server는 그 동작에 대한 정보를 제공하는 많은 status variable을 유지합니다. 이러한 variable과 그 값을 SHOW [GLOBAL | SESSION] STATUS statement를 사용하여 볼 수 있습니다( Section 15.7.7.38, “SHOW STATUS Statement” 참조).
선택적인 GLOBAL 키워드는 모든 커넥션에 걸친 값을 집계하고, SESSION은 현재 커넥션에 대한 값을 표시합니다.
1mysql> SHOW GLOBAL STATUS; 2+-----------------------------------+------------+ 3| Variable_name | Value | 4+-----------------------------------+------------+ 5| Aborted_clients | 0 | 6| Aborted_connects | 0 | 7| Bytes_received | 155372598 | 8| Bytes_sent | 1176560426 | 9... 10| Connections | 30023 | 11| Created_tmp_disk_tables | 0 | 12| Created_tmp_files | 3 | 13| Created_tmp_tables | 2 | 14... 15| Threads_created | 217 | 16| Threads_running | 88 | 17| Uptime | 1389872 | 18+-----------------------------------+------------+
많은 status variable은 FLUSH STATUS statement에 의해 0으로 리셋됩니다.
이 section에서는 각 status variable에 대한 설명을 제공합니다. status variable 요약은 Section 7.1.6, “Server Status Variable Reference”를 참조하십시오.
NDB Cluster에 특정한 status variable에 대한 정보는 Section 25.4.3.9.3, “NDB Cluster Status Variables”를 참조하십시오.
status variable은 다음과 같은 의미를 가집니다.
클라이언트가 커넥션을 정상적으로 닫지 않고 죽었기 때문에 중단된 커넥션의 수입니다. Section B.3.2.9, “Communication Errors and Aborted Connections”를 참조하십시오.
MySQL server에 연결하려는 시도가 실패한 횟수입니다. Section B.3.2.9, “Communication Errors and Aborted Connections”를 참조하십시오.
추가적인 커넥션 관련 정보는
Connection_errors_xxx
status variable과
host_cache 테이블을 확인하십시오.
Authentication_ldap_sasl_supported_methods
SASL LDAP 인증을 구현하는 authentication_ldap_sasl 플러그인은 여러 인증 메서드를 지원하지만, 호스트 시스템 구성에 따라 모든 메서드가 사용 가능하지 않을 수 있습니다.
Authentication_ldap_sasl_supported_methods
variable은 지원되는 메서드에 대한 discoverability를 제공합니다.
값은 공백으로 구분된 지원 메서드 이름으로 구성된 문자열입니다.
예: "SCRAM-SHA 1 SCRAM-SHA-256 GSSAPI"
임시 바이너리 로그 캐시를 사용했지만
binlog_cache_size 값을 초과하여 트랜잭션의 statement를 저장하기 위해 임시 파일을 사용한 트랜잭션 수입니다.
바이너리 로그 트랜잭션 캐시를 디스크에 쓰도록 만든
비트랜잭션 statement의 수는
Binlog_stmt_cache_disk_use
status variable에서 별도로 추적됩니다.
캐시된 권한 오브젝트의 수입니다. 각 오브젝트는 유저와 그 활성 롤의 권한 조합입니다.
바이너리 로그 캐시를 사용한 트랜잭션 수입니다.
바이너리 로그 statement 캐시를 사용했지만
binlog_stmt_cache_size 값을 초과하여 해당 statement를 저장하기 위해 임시 파일을 사용한
비트랜잭션 statement의 수입니다.
바이너리 로그 statement 캐시를 사용한 비트랜잭션 statement의 수입니다.
모든 클라이언트로부터 수신한 바이트 수입니다.
모든 클라이언트에게 전송한 바이트 수입니다.
Caching_sha2_password_rsa_public_key
RSA 키 페어 기반 패스워드 교환을 위해
caching_sha2_password 인증 플러그인이 사용하는 public key입니다.
값은 서버가
caching_sha2_password_private_key_path
및
caching_sha2_password_public_key_path
시스템 변수에 의해 명명된 파일에서 private 및 public key를 성공적으로 초기화한 경우에만 비어 있지 않습니다.
Caching_sha2_password_rsa_public_key
값은 후자의 파일에서 가져옵니다.
Com_xxx
Com_xxx
statement 카운터 variable은 각 xxx statement가 실행된 횟수를 나타냅니다.
statement 타입마다 하나의 status variable이 있습니다.
예를 들어, Com_delete와
Com_update는 각각
DELETE statement와
UPDATE statement를 카운트합니다.
Com_delete_multi와
Com_update_multi는 유사하지만
멀티테이블 구문을 사용하는
DELETE 및
UPDATE statement에 적용됩니다.
모든 Com_stmt_xxx
variable은 prepared statement 인자가 unknown이거나 실행 중 오류가 발생한 경우에도 증가합니다.
즉, 이들의 값은 성공적으로 완료된 요청 수가 아니라 발행된 요청 수에 해당합니다.
예를 들어, status variable은 서버가 시작될 때마다 초기화되며 재시작 사이에 유지되지 않기 때문에,
RESTART와
SHUTDOWN statement를 추적하는
Com_restart와
Com_shutdown variable은 보통 0 값을 가지지만,
RESTART 또는
SHUTDOWN statement가 실행되었으나 실패한 경우 0이 아닐 수 있습니다.
Com_stmt_xxx
status variable은 다음과 같습니다:
Com_stmt_prepareCom_stmt_executeCom_stmt_fetchCom_stmt_send_long_dataCom_stmt_resetCom_stmt_close이러한 variable은 prepared statement 커맨드를 나타냅니다.
이들의 이름은 네트워크 계층에서 사용되는
COM_xxx 커맨드 집합을 참조합니다.
즉, mysql_stmt_prepare(),
mysql_stmt_execute() 등의 prepared statement API 호출이 실행될 때마다 값이 증가합니다.
그러나 Com_stmt_prepare,
Com_stmt_execute 및
Com_stmt_close는 각각
PREPARE,
EXECUTE,
DEALLOCATE PREPARE에 대해서도 증가합니다.
추가로, 오래된 statement 카운터 variable인
Com_prepare_sql,
Com_execute_sql,
Com_dealloc_sql의 값도
PREPARE,
EXECUTE,
DEALLOCATE PREPARE statement에 대해 증가합니다.
Com_stmt_fetch는 커서에서 fetch할 때 발생한 네트워크 라운드 트립의 총 수를 나타냅니다.
Com_stmt_reprepare는 statement가 서버에 의해 자동으로 재준비(reprepare)된 횟수를 나타냅니다. 예를 들어, statement가 참조하는 테이블 또는 뷰의 메타데이터가 변경된 후에 발생합니다.
reprepare 작업은
Com_stmt_reprepare를 증가시키고,
Com_stmt_prepare도 증가시킵니다.
Com_explain_other는
EXPLAIN FOR CONNECTION statement가 실행된 횟수를 나타냅니다.
Section 10.8.4, “Obtaining Execution Plan Information for a Named Connection”를 참조하십시오.
Com_change_repl_filter는
CHANGE REPLICATION FILTER
statement가 실행된 횟수를 나타냅니다.
Com_create_library,
Com_drop_library,
Com_alter_library,
Com_show_create_library,
Com_show_library_status는 각각
CREATE LIBRARY,
DROP LIBRARY,
ALTER LIBRARY,
SHOW CREATE LIBRARY,
SHOW LIBRARY STATUS statement가 실행된 횟수를 각각 나타냅니다.
이 variable은 MLE 컴포넌트가 설치된 경우에만 존재합니다( Section 7.5.7, “Multilingual Engine Component (MLE)” 참조).
클라이언트 커넥션이 클라이언트/서버 프로토콜에서 압축을 사용하는지 여부입니다.
이 status variable은 deprecated되었습니다. 향후 MySQL 버전에서 제거될 예정입니다. Configuring Legacy Connection Compression을 참조하십시오.
서버에 대한 현재 커넥션에서 사용 중인 압축 알고리즘의 이름입니다.
값은
protocol_compression_algorithms
시스템 변수 값에서 허용되는 알고리즘 중 하나일 수 있습니다.
예를 들어, 커넥션이 압축을 사용하지 않으면 값은 uncompressed이고,
zlib 알고리즘을 사용하면 값은 zlib입니다.
자세한 내용은 Section 6.2.8, “Connection Compression Control”을 참조하십시오.
서버에 대한 현재 커넥션에서 사용 중인 압축 레벨입니다.
zlib 커넥션의 경우 값은 6(zlib 알고리즘 기본 압축 레벨),
zstd 커넥션의 경우 1에서 22,
uncompressed 커넥션의 경우 0입니다.
자세한 내용은 Section 6.2.8, “Connection Compression Control”을 참조하십시오.
Component_connection_control_delay_generated
component_connection_control에 의해 생성된 지연(delay) 수입니다.
지연이 트리거될 때마다 갱신되며,
component_connection_control.failed_connections_threshold
가 설정될 때마다 0으로 리셋됩니다.
자세한 내용은 Section 8.4.2, “The Connection Control Component”를 참조하십시오.
Component_connection_control_exempted_unknown_users
component_connection_control.exempt_unknown_users
에 의해 생성된 커넥션 제어 체크에서 제외된 실패한 TCP 커넥션 수입니다.
자세한 내용은 Section 8.4.2, “The Connection Control Component”를 참조하십시오.
이 variable은 클라이언트 커넥션 과정에서 발생한 에러에 대한 정보를 제공합니다. 이들은 글로벌 전용이며 모든 호스트의 커넥션에 대해 집계된 에러 카운트를 나타냅니다. 이 variable은 TCP 커넥션과 연결되지 않은 에러, 커넥션 과정의 매우 이른 시점(IP 주소가 알려지기 전)에 발생하는 에러, 특정 IP 주소에 특화되지 않은 에러(예: out-of-memory 상황) 등 호스트 캐시에서 accounting되지 않는 에러를 추적합니다( Section 7.1.12.3, “DNS Lookups and the Host Cache” 참조).
리스닝 포트에서 accept() 호출 중 발생한 에러 수입니다.
서버의 내부 에러(예: 새 스레드 시작 실패 또는 out-of-memory 상황)로 인해 거부된 커넥션 수입니다.
Connection_errors_max_connections
서버의
max_connections 제한에 도달했기 때문에 거부된 커넥션 수입니다.
Connection_errors_peer_address
연결하는 클라이언트 IP 주소를 검색하는 동안 발생한 에러 수입니다.
리스닝 포트에서 select() 또는 poll() 호출 중 발생한 에러 수입니다.
(이 작업의 실패가 반드시 클라이언트 커넥션이 거부되었음을 의미하는 것은 아닙니다.)
libwrap 라이브러리에 의해 거부된 커넥션 수입니다.
MySQL server에 대한 커넥션 시도 수(성공 또는 실패 모두 포함)입니다.
Count_hit_query_past_global_connection_memory_status_limit
어떤 커넥션을 사용하는 쿼리가
global_connection_memory_status_limit을 초과하는 총 메모리 사용을 유발한 횟수입니다.
쿼리가 총 메모리 사용량을
global_connection_memory_status_limit 미만에서 이 값보다 크게 가져갈 때 증가합니다.
쿼리가 실행될 때 총 메모리 사용량이 이미 이 제한을 초과하는 경우에는 이 status variable이 증가하지 않습니다.
Count_hit_query_past_connection_memory_status_limit
현재 커넥션을 사용하는 쿼리가
connection_memory_limit을 초과하는 총 메모리 사용을 유발한 횟수입니다.
커넥션 내에서 실행된 쿼리가 총 메모리 사용량을
connection_memory_limit 미만에서 이 값보다 크게 가져갈 때 증가합니다.
쿼리가 실행될 때 총 메모리 사용량이 이미 이 제한을 초과하는 경우에는 이 status variable이 증가하지 않습니다.
TempTable 엔진이
tmp_table_size 제한에 도달했거나,
MEMORY 엔진이
tmp_table_size와
max_heap_table_size 중 더 작은 값에 도달했기 때문에
메모리 내에서 디스크 기반으로 변환된
internal temporary tables 수입니다.
statement를 실행하는 동안 서버에 의해 생성된 내부 디스크 기반 임시 테이블 수입니다.
내부 디스크 기반 임시 테이블의 수를
내부 임시 테이블 전체 수와 비교하려면
Created_tmp_disk_tables 값과
Created_tmp_tables 값을 비교하십시오.
Note
알려진 제약 때문에,
Created_tmp_disk_tables는
메모리 매핑 파일에 생성된 디스크 기반 임시 테이블을 카운트하지 않습니다.
기본적으로 TempTable 스토리지 엔진 오버플로 메커니즘은 내부 임시 테이블을 메모리 매핑 파일에 생성합니다.
이 동작은
temptable_max_mmap
variable에 의해 제어됩니다.
또한 Section 10.4.4, “Internal Temporary Table Use in MySQL”을 참조하십시오.
mysqld가 생성한 임시 파일 수입니다.
statement를 실행하는 동안 서버에 의해 생성된 내부 임시 테이블 수입니다.
내부 디스크 기반 임시 테이블의 수를
내부 임시 테이블 전체 수와 비교하려면
Created_tmp_disk_tables 값과
Created_tmp_tables 값을 비교하십시오.
또한 Section 10.4.4, “Internal Temporary Table Use in MySQL”을 참조하십시오.
SHOW STATUS statement를 호출할 때마다 내부 임시 테이블이 사용되며
글로벌
Created_tmp_tables 값이 증가합니다.
서버가 새 커넥션에 사용하는 SSL 컨텍스트에서의 활성
ssl_ca 값입니다.
이 컨텍스트 값은 시스템 변수가 변경되었지만
ALTER INSTANCE RELOAD TLS가
이후에 실행되지 않아 SSL 컨텍스트가 컨텍스트 관련 시스템 변수 값으로 재구성되고 해당 status variable이 갱신되지 않은 경우,
현재 ssl_ca 시스템 변수 값과 다를 수 있습니다.
(이러한 값 차이는 각 컨텍스트 관련 시스템 및 status variable pair에 적용됩니다.
Server-Side Runtime Configuration and Monitoring for Encrypted Connections을 참조하십시오.)
Current_tls_xxx
status variable 값은 Performance Schema의
tls_channel_status 테이블을 통해서도 사용할 수 있습니다.
Section 29.12.22.11, “The tls_channel_status Table”을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_capath 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_cert 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_cipher 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
tls_ciphersuites 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_crl 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
Note
TLS 컨텍스트를 리로드할 때, OpenSSL은 프로세스의 일부로 CRL(certificate revocation list)을 포함하는 파일을 다시 로드합니다.
CRL 파일이 큰 경우, 서버는 파일 크기의 10배에 해당하는 큰 메모리 청크를 할당하며, 새 인스턴스가 로드되는 동안 이전 인스턴스가 아직 해제되지 않았을 때 이 값이 두 배가 됩니다.
큰 할당이 해제된 후에도 프로세스의 resident 메모리는 즉시 줄어들지 않기 때문에,
큰 CRL 파일로 ALTER INSTANCE RELOAD TLS statement를 반복해서 실행하면,
그 결과 프로세스 resident 메모리 사용량이 증가할 수 있습니다.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_crlpath 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
ssl_key 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
서버가 새 커넥션에 사용하는 TLS 컨텍스트에서의 활성
tls_version 값입니다.
이 status variable과 해당 시스템 변수 간의 관계에 대한 내용은
Current_tls_ca의 설명을 참조하십시오.
이 status variable은 deprecated되었습니다(DELAYED insert가 지원되지 않기 때문입니다).
향후 릴리스에서 제거될 예정입니다.
이 status variable은 deprecated되었습니다(DELAYED insert가 지원되지 않기 때문입니다).
향후 릴리스에서 제거될 예정입니다.
이 status variable은 deprecated되었습니다(DELAYED insert가 지원되지 않기 때문입니다).
향후 릴리스에서 제거될 예정입니다.
Deprecated_use_i_s_processlist_count
마지막 재시작 이후
information_schema.processlist
테이블이 액세스된 횟수입니다.
Deprecated_use_i_s_processlist_last_timestamp
마지막 재시작 이후
information_schema.processlist
테이블이 마지막으로 액세스된 시간을 나타내는 타임스탬프입니다.
Unix Epoch 이후 마이크로초를 표시합니다.
dragnet.log_error_filter_rules
시스템 변수에 대한 가장 최근 할당의 결과이며,
그런 할당이 발생하지 않은 경우 비어 있습니다.
Performance Schema
error_log 테이블에서 현재 사용 중인 바이트 수입니다.
새로운 이벤트가 기존 이벤트를 버려야만 들어갈 수 있지만 새 이벤트가 기존 이벤트보다 작은 경우 등, 값이 감소할 수도 있습니다.
Performance Schema
error_log 테이블에 현재 존재하는 이벤트 수입니다.
Error_log_buffered_bytes와 마찬가지로 값이 감소할 수 있습니다.
새로운 이벤트를 위한 공간을 만들기 위해 Performance Schema
error_log 테이블에서 discard된 이벤트 수입니다.
Performance Schema
error_log 테이블에 마지막으로 write한 시간입니다.
사용자가 FLUSH TABLES
statement를 실행했거나 내부 서버 동작으로 인해 서버가 테이블을 플러시한 횟수입니다.
또한 COM_REFRESH 패킷을 수신하면 증가합니다.
이는 Com_flush와 대조되며,
Com_flush는
FLUSH TABLES,
FLUSH LOGS 등 어떤 FLUSH statement가 실행되었는지를 나타냅니다.
서버에 대한 모든 유저 커넥션이 사용하는 메모리입니다.
시스템 스레드나 MySQL root 계정이 사용하는 메모리도 total에 포함되지만, 이러한 스레드나 유저는 메모리 사용량 때문에 disconnect 대상이 되지 않습니다.
이 메모리는
global_connection_memory_tracking
이 enable된 경우에만 계산됩니다(기본값은 disable).
또한 Performance Schema도 enable되어야 합니다.
이 variable이 업데이트되는 빈도는
connection_memory_chunk_size를 설정하여 (간접적으로) 제어할 수 있습니다.
내부 COMMIT
statement 수입니다.
테이블에서 row가 삭제된 횟수입니다.
서버는 그 external_lock() 함수에 대한 각 호출마다 이 variable을 증가시키며, 일반적으로 테이블 인스턴스에 대한 액세스의 시작과 끝에서 발생합니다.
스토리지 엔진 간에 차이가 있을 수 있습니다.
이 variable은 예를 들어, 파티션 테이블에 액세스하는 statement에 대해 locking이 발생하기 전에 prune된 파티션 수를 알아내는 데 사용할 수 있습니다:
statement에 대해 카운터가 얼마나 증가했는지 확인하고, 2(해당 테이블 자체에 대한 2번의 호출)를 뺀 후 2로 나누면 lock된 파티션 수를 얻을 수 있습니다.
서버가 테이블 액세스를 위해 스토리지 엔진 고유의 Multi-Range Read 구현을 사용한 횟수입니다.
two-phase commit 작업의 prepare 단계에 대한 카운터입니다.
인덱스에서 첫 엔트리를 읽은 횟수입니다.
이 값이 크면, 서버가 많은 full 인덱스 스캔을 수행하고 있음을 시사합니다(예: col1이 인덱스된 상태에서 SELECT col1 FROM foo).
key를 기반으로 row를 읽기 위한 요청 수입니다. 이 값이 크면, 쿼리에 대해 테이블이 적절하게 인덱스되었음을 나타내는 좋은 신호입니다.
인덱스에서 마지막 key를 읽기 위한 요청 수입니다.
ORDER BY의 경우, 서버는 first-key 요청 후 여러 next-key 요청을 발행하지만,
ORDER BY DESC의 경우, 서버는 last-key 요청 후 여러 previous-key 요청을 발행합니다.
key 순서대로 다음 row를 읽기 위한 요청 수입니다. 이 값은 range 조건이 있는 인덱스 컬럼을 쿼리하는 경우 또는 인덱스 스캔을 수행하는 경우 증가합니다.
key 순서에서 이전 row를 읽기 위한 요청 수입니다.
이 read 메서드는 주로 ORDER BY ... DESC를 최적화하는 데 사용됩니다.
고정 위치를 기반으로 row를 읽기 위한 요청 수입니다. 이 값이 크면, 결과 정렬을 필요로 하는 쿼리를 많이 실행하고 있다는 의미입니다. 아마도 전체 테이블을 스캔해야 하는 쿼리가 많거나 key를 적절히 사용하지 않는 조인이 있을 수 있습니다.
데이터 파일에서 다음 row를 읽기 위한 요청 수입니다. 이 값이 크면, 테이블 스캔을 많이 수행하고 있다는 의미입니다. 일반적으로 이는 테이블에 적절한 인덱스가 없거나, 보유한 인덱스를 활용하도록 쿼리가 작성되지 않았음을 시사합니다.
스토리지 엔진에 rollback 작업을 수행하도록 요청한 횟수입니다.
스토리지 엔진에 savepoint를 설정하도록 요청한 횟수입니다.
스토리지 엔진에 savepoint로 rollback하도록 요청한 횟수입니다.
테이블에서 row를 업데이트하기 위한 요청 수입니다.
테이블에 row를 insert하기 위한 요청 수입니다.
Innodb_buffer_pool_dump_status
innodb_buffer_pool_dump_at_shutdown 또는
innodb_buffer_pool_dump_now 설정에 의해 트리거된,
InnoDB buffer pool에 유지된
page를 기록하는 작업의 진행 상황입니다.
관련 정보와 예제는 Section 17.8.3.6, “Saving and Restoring the Buffer Pool State”를 참조하십시오.
Innodb_buffer_pool_load_status
InnoDB buffer pool을
warm up하기 위해,
이전 시점을 기준으로 하는 page 집합을 읽어들이는 작업의 진행 상황입니다.
이 작업은
innodb_buffer_pool_load_at_startup
또는
innodb_buffer_pool_load_now의 설정에 의해 트리거됩니다.
이 작업이 너무 많은 오버헤드를 유발하는 경우,
innodb_buffer_pool_load_abort를 설정하여 취소할 수 있습니다.
관련 정보와 예제는 Section 17.8.3.6, “Saving and Restoring the Buffer Pool State”를 참조하십시오.
데이터를 포함하는 InnoDB buffer pool 내의 총 바이트 수입니다.
이 수에는 dirty page와 clean page가 모두 포함됩니다.
compressed 테이블로 인해 buffer pool이 서로 다른 크기의 page를 보관하는 경우,
Innodb_buffer_pool_pages_data보다 더 정확한 메모리 사용량 계산을 제공합니다.
데이터를 포함하는 InnoDB buffer pool 내의
page 수입니다.
이 수에는 dirty page와 clean page가 모두 포함됩니다.
compressed tables를 사용하는 경우,
보고된
Innodb_buffer_pool_pages_data 값이
Innodb_buffer_pool_pages_total보다 클 수 있습니다(Bug #59550).
Innodb_buffer_pool_bytes_dirty
InnoDB buffer pool 내의
dirty page에 보관된 현재 총 바이트 수입니다.
compressed 테이블로 인해 buffer pool이 서로 다른 크기의 page를 보관하는 경우,
Innodb_buffer_pool_pages_dirty보다 더 정확한 메모리 사용량 계산을 제공합니다.
Innodb_buffer_pool_pages_dirty
InnoDB buffer pool 내의 현재
dirty page 수입니다.
Innodb_buffer_pool_pages_flushed
InnoDB buffer pool에서
page를
flush하기 위한 요청 수입니다.
InnoDB buffer pool 내의 free
page 수입니다.
Innodb_buffer_pool_pages_latched
InnoDB buffer pool 내의 latched
page 수입니다.
이는 현재 read 또는 write 중이거나,
다른 이유로 인해 flush되거나 제거될 수 없는 page입니다.
이 variable의 계산은 비용이 많이 들기 때문에,
서버 빌드 시 UNIV_DEBUG 시스템이 정의된 경우에만 사용할 수 있습니다.
관리 오버헤드(예: row lock 또는
adaptive hash index)를 위해 할당되어 busy 상태인
InnoDB buffer pool 내의
page 수입니다.
이 값은 또한 다음과 같이 계산할 수 있습니다:
Innodb_buffer_pool_pages_total
−
Innodb_buffer_pool_pages_free
−
Innodb_buffer_pool_pages_data.
compressed tables를 사용하는 경우,
Innodb_buffer_pool_pages_misc는
범위를 벗어난(out-of-bounds) 값을 보고할 수 있습니다(Bug #59550).
Innodb_buffer_pool_pages_total
InnoDB buffer pool의 총 크기이며,
page 단위입니다.
compressed tables를 사용하는 경우,
보고된
Innodb_buffer_pool_pages_data 값이
Innodb_buffer_pool_pages_total보다 클 수 있습니다(Bug #59550).
read-ahead 백그라운드 스레드에 의해
InnoDB buffer pool로 읽혀진
page 수입니다.
Innodb_buffer_pool_read_ahead_evicted
read-ahead 백그라운드 스레드에 의해
InnoDB buffer pool로 읽혀진 후,
쿼리에 의해 액세스되지 않고
eviction된
page 수입니다.
Innodb_buffer_pool_read_ahead_rnd
InnoDB에 의해 시작된 “random” read-ahead 수입니다.
이는 쿼리가 테이블의 큰 부분을 random order로 스캔할 때 발생합니다.
Innodb_buffer_pool_read_requests
logical read 요청 수입니다.
InnoDB가
buffer pool만으로는 처리할 수 없어
디스크에서 직접 읽어야 했던 logical read 수입니다.
Innodb_buffer_pool_resize_status
innodb_buffer_pool_size
파라미터를 동적으로 설정하여 트리거된,
InnoDB buffer pool을 동적으로 리사이즈하는 작업의 status입니다.
innodb_buffer_pool_size
파라미터는 dynamic하므로, 서버를 재시작하지 않고 buffer pool을 리사이즈할 수 있습니다.
관련 정보는
Configuring InnoDB Buffer Pool Size Online을 참조하십시오.
Innodb_buffer_pool_resize_status_code
online buffer pool 리사이즈 작업을 추적하기 위한 status 코드들을 보고합니다. 각 status 코드는 리사이즈 작업의 단계를 나타냅니다. status 코드에는 다음이 포함됩니다:
이 status variable은
Innodb_buffer_pool_resize_status_progress와 함께 사용하여,
리사이즈 작업의 각 단계 진행 상황을 추적할 수 있습니다.
Innodb_buffer_pool_resize_status_progress
variable은 현재 단계의 진행 상황을 나타내는 percent 값을 보고합니다.
자세한 내용은 Monitoring Online Buffer Pool Resizing Progress을 참조하십시오.
Innodb_buffer_pool_resize_status_progress
online buffer pool 리사이즈 작업의 현재 단계에 대한 진행 상황을 percent 값으로 보고합니다.
이 variable은 online buffer pool 리사이즈 작업의 현재 단계를 나타내는 status 코드를 보고하는
Innodb_buffer_pool_resize_status_code와 함께 사용됩니다.
percent 값은 각 buffer pool 인스턴스가 처리된 후에 업데이트됩니다.
status 코드( Innodb_buffer_pool_resize_status_code에 의해 보고됨)가 한 status에서 다른 status로 변경되면,
percent 값은 0으로 리셋됩니다.
관련 정보는 Monitoring Online Buffer Pool Resizing Progress를 참조하십시오.
보통 InnoDB buffer pool에 대한 write는 백그라운드에서 발생합니다.
InnoDB가 page를 read하거나 생성해야 하는데 clean page가 없는 경우,
InnoDB는 먼저 일부 dirty page를 flush하고 해당 작업이 완료될 때까지 기다립니다.
이 카운터는 이러한 wait의 횟수를 카운트합니다.
innodb_buffer_pool_size가 적절하게 설정된 경우,
이 값은 작아야 합니다.
Innodb_buffer_pool_write_requests
InnoDB buffer pool에 대한 write 수입니다.
지금까지의 fsync() 작업 수입니다.
fsync() 호출 빈도는
innodb_flush_method
설정에 의해 영향을 받습니다.
innodb_use_fdatasync이 enable된 경우,
fdatasync() 작업 수를 카운트합니다.
현재 pending 상태인 fsync() 작업 수입니다.
fsync() 호출 빈도는
innodb_flush_method
설정에 의해 영향을 받습니다.
현재 pending 상태인 read 수입니다.
현재 pending 상태인 write 수입니다.
서버가 시작된 이후 read된 데이터 양(단위: 바이트)입니다.
데이터 read(OS 파일 read)의 총 횟수입니다.
데이터 write의 총 횟수입니다.
지금까지 write된 데이터 양(단위: 바이트)입니다.
doublewrite buffer에 write된 page 수입니다. Section 17.11.1, “InnoDB Disk I/O”를 참조하십시오.
수행된 doublewrite 작업 수입니다. Section 17.11.1, “InnoDB Disk I/O”를 참조하십시오.
서버가 atomic instruction을 사용하여 빌드되었는지 여부를 나타냅니다.
log buffer가 너무 작아서, 계속 진행하기 전에 buffer를 flush하기 위해 wait가 필요했던 횟수입니다.
InnoDB redo log에 대한 write 요청 수입니다.
InnoDB redo log 파일에 대한 physical write 수입니다.
InnoDB가 현재 open하고 있는 파일 수입니다.
InnoDB redo log 파일에 대해 수행된
fsync() write 수입니다.
InnoDB redo log 파일에 대한 pending 상태의
fsync() 작업 수입니다.
InnoDB redo log 파일에 대한 pending 상태의 write 수입니다.
InnoDB redo log 파일에 write된 바이트 수입니다.
InnoDB page 크기(기본값 16KB)입니다.
많은 값이 page 단위로 카운트되며, page 크기를 통해 바이트 단위로 쉽게 변환할 수 있습니다.
InnoDB 테이블에 대한 작업으로 생성된 page 수입니다.
InnoDB 테이블에 대한 작업으로
InnoDB buffer pool에서 read된 page 수입니다.
InnoDB 테이블에 대한 작업으로 write된 page 수입니다.
redo logging이 enable 상태인지 disable 상태인지 여부입니다. Disabling Redo Logging을 참조하십시오.
Innodb_redo_log_capacity_resized
마지막으로 완료된 capacity 리사이즈 작업 이후의, 모든 redo log 파일에 대한 총 redo log capacity(단위: 바이트)입니다. 값에는 일반 redo log 파일과 spare redo log 파일이 모두 포함됩니다.
pending 상태의 리사이즈 다운 작업이 없는 경우,
Innodb_redo_log_capacity_resized는
innodb_redo_log_capacity가 사용되는 경우
그 값과 동일해야 합니다.
추가 설명은
innodb_redo_log_capacity 문서를 참조하십시오.
리사이즈 업 작업은 즉시 실행됩니다.
관련 정보는 Section 17.6.5, “Redo Log”를 참조하십시오.
Innodb_redo_log_checkpoint_lsn
redo log checkpoint LSN입니다. 관련 정보는 Section 17.6.5, “Redo Log”를 참조하십시오.
현재 LSN은 redo log buffer에서 마지막으로 write된 위치를 나타냅니다.
InnoDB는 운영체제에 현재 redo log 파일에 데이터를 write하도록 요청하기 전에,
MySQL 프로세스 내부에서 redo log buffer에 데이터를 write합니다.
관련 정보는
Section 17.6.5, “Redo Log”를 참조하십시오.
Innodb_redo_log_flushed_to_disk_lsn
flushed-to-disk LSN입니다.
InnoDB는 먼저 redo log에 데이터를 write한 후,
운영체제에 데이터를 디스크로 flush하도록 요청합니다.
flushed-to-disk LSN은
InnoDB가 디스크로 flush되었다고 인식하는 redo log 내의 마지막 위치를 나타냅니다.
관련 정보는
Section 17.6.5, “Redo Log”를 참조하십시오.
사용 중인 redo log 데이터를 포함하는 LSN 범위를 나타내는 데이터 크기 값(단위: 바이트)입니다. 이는 redo log consumer에 의해 필요한 가장 오래된 블록에서 마지막으로 write된 블록까지의 범위를 나타냅니다. 관련 정보는 Section 17.6.5, “Redo Log”를 참조하십시오.
spare redo log 파일을 제외하고, 디스크에 있는 모든 redo log 파일이 현재 사용하고 있는 디스크 공간(단위: 바이트)입니다. 관련 정보는 Section 17.6.5, “Redo Log”를 참조하십시오.
redo log가 read-only 상태인지 여부입니다.
redo log capacity 리사이즈 메커니즘의 현재 상태를 나타내는 redo log 리사이즈 status입니다. 가능한 값에는 다음이 포함됩니다:
OK: 문제 없으며 pending 상태의 redo log capacity 리사이즈 작업이 없음Resizing down: 리사이즈 다운 작업이 진행 중임리사이즈 업 작업은 즉시 실행되므로 pending status가 없습니다.
redo log UUID입니다.
InnoDB 테이블에 대한 작업이 현재 기다리고 있는
row lock 수입니다.
InnoDB 테이블에 대한
row lock을 획득하는 데 소요된 총 시간(단위: 밀리초)입니다.
InnoDB 테이블에 대한
row lock을 획득하는 평균 시간(단위: 밀리초)입니다.
InnoDB 테이블에 대한
row lock을 획득하는 데 소요된 최대 시간(단위: 밀리초)입니다.
InnoDB 테이블에 대한 작업이
row lock을 기다려야 했던 횟수입니다.
InnoDB 테이블에서 삭제된 row 수입니다.
InnoDB 테이블에 insert된 row 수입니다.
InnoDB 테이블에서 read된 row 수입니다.
InnoDB 테이블에서 update된 row의 추정 수입니다.
Note
이 값은 100% 정확하도록 설계된 것이 아닙니다.
더 정확하지만 비용이 큰 결과가 필요하다면
ROW_COUNT()를 사용하십시오.
시스템이 생성한 스키마에 속한 InnoDB 테이블에서 삭제된 row 수입니다.
시스템이 생성한 스키마에 속한 InnoDB 테이블에 insert된 row 수입니다.
시스템이 생성한 스키마에 속한 InnoDB 테이블에서 update된 row 수입니다.
시스템이 생성한 스키마에 속한 InnoDB 테이블에서 read된 row 수입니다.
Innodb_truncated_status_writes
SHOW ENGINE INNODB STATUS statement의 output이 truncate된 횟수입니다.
Innodb_undo_tablespaces_active
active한 undo tablespace 수입니다.
implicit(InnoDB가 생성한) undo tablespace와 explicit(유저가 생성한) undo tablespace가 모두 포함됩니다.
undo tablespace에 대한 정보는
Section 17.6.3.4, “Undo Tablespaces”를 참조하십시오.
Innodb_undo_tablespaces_explicit
유저가 생성한 undo tablespace 수입니다. undo tablespace에 대한 정보는 Section 17.6.3.4, “Undo Tablespaces”를 참조하십시오.
Innodb_undo_tablespaces_implicit
InnoDB가 생성한 undo tablespace 수입니다.
MySQL 인스턴스가 초기화될 때
InnoDB는 두 개의 기본 undo tablespace를 생성합니다.
undo tablespace에 대한 정보는
Section 17.6.3.4, “Undo Tablespaces”를 참조하십시오.
총 undo tablespace 수입니다.
implicit(InnoDB가 생성한) 및 explicit(유저가 생성한) undo tablespace, active 및 inactive 모두를 포함합니다.
undo tablespace에 대한 정보는
Section 17.6.3.4, “Undo Tablespaces”를 참조하십시오.
MyISAM key 캐시에서 변경되었지만 아직 디스크에 flush되지 않은 key 블록 수입니다.
MyISAM key 캐시에서 사용되지 않은 블록 수입니다.
이 값을 사용하여 key 캐시가 얼마나 사용 중인지 결정할 수 있습니다.
Section 7.1.8, “Server System Variables”의
key_buffer_size에 대한 설명을 참조하십시오.
MyISAM key 캐시에서 사용된 블록 수입니다.
이 값은 한 번에 사용된 블록의 최대 수를 나타내는 high-water mark입니다.
MyISAM key 캐시에서 key 블록을 read하기 위한 요청 수입니다.
MyISAM key 캐시로 디스크에서 key 블록을 physical read한 수입니다.
Key_reads가 크면,
key_buffer_size 값이 너무 작을 가능성이 큽니다.
캐시 miss rate는
Key_reads/Key_read_requests로 계산할 수 있습니다.
MyISAM key 캐시에 key 블록을 write하기 위한 요청 수입니다.
MyISAM key 캐시에서 디스크로 key 블록을 physical write한 수입니다.
쿼리 옵티마이저가 계산한, 마지막으로 컴파일된 쿼리의 total cost입니다.
이는 동일한 쿼리에 대한 서로 다른 쿼리 플랜의 cost를 비교하는 데 유용합니다.
기본값 0은 아직 컴파일된 쿼리가 없음을 의미합니다.
기본값은 0입니다.
Last_query_cost는 세션 스코프를 가집니다.
이 variable은 여러 쿼리 블록을 포함하는 쿼리의 cost를 보여 주며, 각 쿼리 블록의 cost estimate를 합산하고, 캐시할 수 없는 서브쿼리가 몇 번 실행되는지 estimate한 후, 해당 쿼리 블록의 cost를 서브쿼리 실행 횟수와 곱합니다.
이전 쿼리에 대한 실행 플랜을 구성할 때 쿼리 옵티마이저가 수행한 iteration 수입니다.
Last_query_partial_plans는 세션 스코프를 가집니다.
lock된 유저 계정에 대한 커넥션 시도 횟수입니다. 계정 lock 및 unlock에 대한 정보는 Section 8.2.20, “Account Locking”을 참조하십시오.
실행 타임아웃을 초과한
SELECT statement 수입니다.
0이 아닌 실행 타임아웃이 설정된
SELECT statement 수입니다.
여기에는 0이 아닌
MAX_EXECUTION_TIME 옵티마이저 힌트를 포함하는 statement와,
그러한 힌트를 포함하지 않지만 시스템 변수
max_execution_time이 0이 아닌 동안 실행되는 statement가 포함됩니다.
실행 타임아웃 설정 시도가 실패한
SELECT statement 수입니다.
서버가 시작된 이후 동시에 사용된 커넥션의 최대 수입니다.
Max_used_connections가 현재 값에 도달한 시점입니다.
이 status variable은 deprecated되었습니다(DELAYED insert가 지원되지 않기 때문입니다).
향후 릴리스에서 제거될 예정입니다.
MeCab full-text parser 플러그인이 현재 사용하는 문자 집합입니다. 관련 정보는 Section 14.9.9, “MeCab Full-Text Parser Plugin”을 참조하십시오.
Ongoing_anonymous_transaction_count
anonymous로 mark된 ongoing 트랜잭션 수를 보여 줍니다. 이를 사용하여 더 이상 처리 대기 중인 트랜잭션이 없는지 확인할 수 있습니다.
Ongoing_automatic_gtid_violating_transaction_count
이 status variable은 debug 빌드에서만 사용할 수 있습니다.
gtid_next=AUTOMATIC을 사용하며 GTID consistency를 위반하는 ongoing 트랜잭션 수를 보여 줍니다.
open 상태인 파일 수입니다. 이 카운트에는 서버가 open한 일반 파일이 포함됩니다. 소켓이나 파이프 등의 다른 유형의 파일은 포함되지 않습니다. 또한, 스토리지 엔진이 서버 레벨에 요청하지 않고 자체 internal 함수를 사용하여 open한 파일은 카운트에 포함되지 않습니다.
open 상태인 스트림 수입니다(주로 로깅에 사용).
캐시된 테이블 정의 수입니다.
open 상태인 테이블 수입니다.
my_open()( mysys 라이브러리 함수)을 사용하여 open된 파일 수입니다.
이 함수를 사용하지 않고 파일을 open하는 서버 부분은 이 카운트를 증가시키지 않습니다.
캐시된 테이블 정의 수입니다.
open된 적이 있는 테이블 수입니다.
Opened_tables가 크면,
table_open_cache 값이 너무 작을 가능성이 큽니다.
Performance_schema_xxx
Performance Schema status variable은 Section 29.16, “Performance Schema Status Variables”에 나열되어 있습니다. 이 variable은 메모리 제약으로 인해 로드되거나 생성될 수 없었던 instrumentation에 대한 정보를 제공합니다.
현재 prepared statement 수입니다.
(statement의 최대 수는
max_prepared_stmt_count
시스템 변수에 의해 지정됩니다.)
서버가 실행한 statement 수입니다.
이 variable은 저장 프로그램 내에서 실행된 statement를 포함하며,
Questions variable과는 다릅니다.
COM_PING 또는
COM_STATISTICS 커맨드는 카운트하지 않습니다.
이 section 시작 부분의 논의에서는 이 statement 카운트 status variable을 다른 유사 variable과 연관시키는 방법을 설명합니다.
서버가 실행한 statement 수입니다.
이 값에는 클라이언트가 서버로 보낸 statement만 포함되며,
저장 프로그램 내에서 실행된 statement는 포함되지 않습니다.
이는 Queries variable과 다릅니다.
이 variable은
COM_PING,
COM_STATISTICS,
COM_STMT_PREPARE,
COM_STMT_CLOSE,
COM_STMT_RESET 커맨드를 카운트하지 않습니다.
이 section 시작 부분의 논의에서는 이 statement 카운트 status variable을 다른 유사 variable과 연관시키는 방법을 설명합니다.
Replica_open_temp_tables는
replication SQL 스레드가 현재 open하고 있는 임시 테이블 수를 보여 줍니다.
이 값이 0보다 크면 replica를 종료하는 것은 안전하지 않습니다.
Section 19.5.1.32, “Replication and Temporary Tables”를 참조하십시오.
이 variable은 모든 replication 채널에 대한 open 임시 테이블의 총 카운트를 보고합니다.
resource group 기능이 지원되는지 여부를 나타냅니다.
일부 플랫폼 또는 MySQL server 구성에서는 resource group을 사용할 수 없거나 제한이 있을 수 있습니다. 특히, Linux 시스템은 일부 설치 방식에 대해 수동 단계가 필요할 수 있습니다. 자세한 내용은 Resource Group Restrictions를 참조하십시오.
semisynchronous replica 수입니다.
Rpl_semi_sync_source_clients의 deprecated synonym입니다.
Rpl_semi_sync_master_net_avg_wait_time
Rpl_semi_sync_source_net_avg_wait_time의 deprecated synonym입니다.
Rpl_semi_sync_master_net_wait_time
Rpl_semi_sync_source_net_wait_time의 deprecated synonym입니다.
Rpl_semi_sync_master_net_waits
소스가 replica reply를 기다린 총 횟수입니다.
Rpl_semi_sync_source_net_waits의 deprecated synonym입니다.
Rpl_semi_sync_source_no_times의 deprecated synonym입니다.
Rpl_semi_sync_source_no_tx의 deprecated synonym입니다.
Rpl_semi_sync_source_status의 deprecated synonym입니다.
Rpl_semi_sync_master_timefunc_failures
Rpl_semi_sync_source_timefunc_failures의 deprecated synonym입니다.
Rpl_semi_sync_master_tx_avg_wait_time
Rpl_semi_sync_source_tx_avg_wait_time의 deprecated synonym입니다.
Rpl_semi_sync_master_tx_wait_time
Rpl_semi_sync_source_tx_wait_time의 deprecated synonym입니다.
Rpl_semi_sync_source_tx_waits의 deprecated synonym입니다.
Rpl_semi_sync_master_wait_pos_backtraverse
Rpl_semi_sync_source_wait_pos_backtraverse의 deprecated synonym입니다.
Rpl_semi_sync_master_wait_sessions
Rpl_semi_sync_source_wait_sessions의 deprecated synonym입니다.
Rpl_semi_sync_source_yes_tx의 deprecated synonym입니다.
semisynchronous replica 수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_net_avg_wait_time
소스가 replica reply를 기다린 평균 시간(단위: 마이크로초)입니다.
이 variable은 항상 0이며,
deprecated되었습니다. 향후 버전에서 제거될 예정입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_net_wait_time
소스가 replica reply를 기다린 총 시간(단위: 마이크로초)입니다.
이 variable은 항상 0이며,
deprecated되었습니다. 향후 버전에서 제거될 예정입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_net_waits
소스가 replica reply를 기다린 총 횟수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
소스가 semisynchronous replication을 off로 전환한 횟수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
replica에 의해 성공적으로 acknowledge되지 않은 commit 수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
소스에서 semisynchronous replication이 현재 operational 상태인지 여부입니다.
플러그인이 enable되고 commit acknowledgment가 발생한 경우 값은 ON입니다.
플러그인이 enable되지 않았거나 commit acknowledgment timeout으로 인해 소스가 asynchronous replication으로 fallback한 경우 값은 OFF입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_timefunc_failures
소스가 gettimeofday() 등의 time 함수 호출에 실패한 횟수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_tx_avg_wait_time
소스가 각 트랜잭션을 기다린 평균 시간(단위: 마이크로초)입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_tx_wait_time
소스가 트랜잭션을 기다린 총 시간(단위: 마이크로초)입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
소스가 트랜잭션을 기다린 총 횟수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_wait_pos_backtraverse
소스가 이전에 기다렸던 이벤트보다 낮은 binary coordinate를 가진 이벤트를 기다린 총 횟수입니다. 이는 트랜잭션이 reply를 기다리기 시작한 순서가 그들의 binary log 이벤트가 write된 순서와 다른 경우 발생할 수 있습니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_source_wait_sessions
현재 replica reply를 기다리고 있는 세션 수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
replica에 의해 성공적으로 acknowledge된 commit 수입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
replica에서 semisynchronous replication이 현재 operational 상태인지 여부를 보여 줍니다.
플러그인이 enable되고 replication I/O(receiver) 스레드가 running 상태인 경우 ON,
그렇지 않으면 OFF입니다.
소스에 rpl_semi_sync_source 플러그인( semisync_source.so 라이브러리)이 설치된 경우에 사용할 수 있습니다.
Rpl_semi_sync_replica_status의 deprecated synonym입니다.
이 variable의 값은 RSA 키 페어 기반 패스워드 교환을 위해
sha256_password(deprecated) 인증 플러그인이 사용하는 public key입니다.
값은 서버가
sha256_password_private_key_path
및
sha256_password_public_key_path 시스템 변수에 의해 명명된 파일에서 private 및 public key를 성공적으로 초기화한 경우에만 비어 있지 않습니다.
Rsa_public_key의 값은 후자의 파일에서 가져옵니다.
sha256_password에 대한 정보는
Section 8.4.1.2, “SHA-256 Pluggable Authentication”을 참조하십시오.
Secondary_engine_execution_count
MySQL HeatWave에서만 사용됩니다. 자세한 내용은 Status Variables를 참조하십시오.
인덱스를 사용하지 않기 때문에 테이블 스캔을 수행하는 조인 수입니다. 이 값이 0이 아니라면 테이블의 인덱스를 주의 깊게 점검해야 합니다.
reference 테이블에서 range search를 사용한 조인 수입니다.
첫 번째 테이블에서 range를 사용한 조인 수입니다. 값이 상당히 크더라도 일반적으로 치명적인 문제는 아닙니다.
key 없이 조인을 수행하지만 각 row 후 key 사용 여부를 확인하는 조인 수입니다. 이 값이 0이 아니라면 테이블의 인덱스를 주의 깊게 점검해야 합니다.
첫 번째 테이블에 대해 full 스캔을 수행한 조인 수입니다.
Replica_open_temp_tables의 deprecated alias입니다.
Slave_rows_last_search_algorithm_used
Replica_rows_last_search_algorithm_used의 deprecated alias입니다.
생성하는 데
slow_launch_time초보다 오래 걸린 스레드 수입니다.
실행하는 데
long_query_time초보다 오래 걸린 쿼리 수입니다.
이 카운터는 slow query log가 enable되었는지 여부와 상관없이 증가합니다.
해당 로그에 대한 정보는
Section 7.4.5, “The Slow Query Log”를 참조하십시오.
sort 알고리즘이 수행해야 했던 merge pass 수입니다.
이 값이 크면
sort_buffer_size
시스템 변수 값을 증가시키는 것을 고려해야 합니다.
range를 사용하여 수행된 sort 수입니다.
sort된 row 수입니다.
테이블을 스캔하여 수행된 sort 수입니다.
커넥션을 설정하는 데 필요한 negotiate 횟수입니다.
accept된 SSL 커넥션 수입니다.
callback 캐시 hit 수입니다.
현재 암호화 cipher입니다(암호화되지 않은 커넥션의 경우 비어 있음).
가능한 SSL cipher 리스트입니다(non-SSL 커넥션의 경우 비어 있음). MySQL이 TLSv1.3을 지원하는 경우, 값에는 가능한 TLSv1.3 ciphersuite가 포함됩니다. Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”를 참조하십시오.
SSL이 enable된 replication 소스 서버에 대한 SSL 커넥션 시도 수입니다.
SSL이 enable된 replication 소스 서버에 대한 커넥션을 설정하는 데 필요한 negotiate 횟수입니다.
SSL 컨텍스트 verification depth(체인에서 테스트되는 certificate 수)입니다.
SSL 컨텍스트 verification mode입니다.
기본 SSL 타임아웃입니다.
서버에 대한 성공적인 SSL 커넥션 수입니다.
SSL이 enable된 replication 소스 서버에 대한 성공적인 replica 커넥션 수입니다.
SSL certificate가 유효한 마지막 날짜입니다. SSL certificate 만료 정보를 확인하려면 다음 statement를 사용하십시오:
1mysql> SHOW STATUS LIKE 'Ssl_server_not%'; 2+-----------------------+--------------------------+ 3| Variable_name | Value | 4+-----------------------+--------------------------+ 5| Ssl_server_not_after | Apr 28 14:16:39 2025 GMT | 6| Ssl_server_not_before | May 1 14:16:39 2015 GMT | 7+-----------------------+--------------------------+
SSL certificate가 유효한 첫 날짜입니다.
SSL session 캐시 hit 수입니다.
SSL session 캐시 miss 수입니다.
SSL session 캐시 모드입니다.
서버 변수
ssl_session_cache_mode 값이 ON인 경우,
status variable
Ssl_session_cache_mode 값은 SERVER입니다.
SSL session 캐시 overflow 수입니다.
SSL session 캐시 크기입니다.
캐시에 있는 SSL session의 타임아웃 값(단위: 초)입니다.
SSL session 캐시 타임아웃 수입니다.
현재 MySQL 세션에서 TLS가 사용되지 않았거나 TLS 세션이 재사용되지 않은 경우 0이고, 그렇지 않으면 1입니다.
Ssl_sessions_reused는 세션 스코프를 가집니다.
Ssl_used_session_cache_entries
사용된 SSL session 캐시 엔트리 수입니다.
replication SSL 커넥션에 대한 verification depth입니다.
SSL을 사용하는 커넥션에 대해 서버가 사용하는 verification mode입니다.
값은 비트마스크이며,
비트는 openssl/ssl.h 헤더 파일에 정의되어 있습니다:
1# define SSL_VERIFY_NONE 0x00 2# define SSL_VERIFY_PEER 0x01 3# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 4# define SSL_VERIFY_CLIENT_ONCE 0x04
SSL_VERIFY_PEER는 서버가 클라이언트 certificate를 요청함을 나타냅니다.
클라이언트가 certificate를 제공하면,
서버는 verification을 수행하고 verification이 성공한 경우에만 진행합니다.
SSL_VERIFY_CLIENT_ONCE는 클라이언트 certificate에 대한 요청이 initial handshake에서만 수행됨을 나타냅니다.
커넥션의 SSL 프로토콜 버전(예: TLSv1.2)입니다. 커넥션이 암호화되지 않은 경우 값은 비어 있습니다.
테이블 lock 요청이 즉시 허용된 횟수입니다.
테이블 lock 요청이 즉시 허용될 수 없어서 wait가 필요했던 횟수입니다. 이 값이 높고 성능 문제가 있다면, 먼저 쿼리를 최적화한 다음, 테이블을 분할하거나 replication을 사용하는 것을 고려해야 합니다.
open 테이블 캐시 lookup에 대한 hit 수입니다.
open 테이블 캐시 lookup에 대한 miss 수입니다.
open 테이블 캐시에 대한 overflow 수입니다.
이는 테이블이 open되거나 close된 후,
캐시 인스턴스에 unused 엔트리가 있고 인스턴스 크기가
table_open_cache
/table_open_cache_instances보다 큰 횟수입니다.
Table_open_cache_triggers_hits
trigger가 있는 open 테이블에 대한 캐시 hit 수입니다.
trigger가 있는 테이블이 테이블 캐시의 unused 테이블 중 trigger가 있는 테이블 리스트에서 데이터 수정 작업에 의해 발견되면,
이 수는 1만큼 증가합니다.
SELECT 같은 read-only 작업의 대상인 경우,
해당 테이블은 trigger가 없는 것처럼 처리되며,
대신 Table_open_cache_hits가 증가합니다.
Table_open_cache_triggers_misses
trigger가 있는 open 테이블에 대한 캐시 miss 수입니다.
trigger가 있는 테이블이 테이블 캐시에서 trigger가 있는 unused 테이블 리스트에 의해 대기 중인 데이터 수정 작업에 의해 발견되지 않을 때마다 이 수는 1만큼 증가합니다.
테이블에 대한 pending 작업이
SELECT statement와 같은 read-only 작업인 경우,
해당 테이블은 trigger가 없는 것처럼 처리되며,
대신 Table_open_cache_misses가 증가합니다.
Table_open_cache_triggers_overflows
trigger가 있는 open 테이블에 대한 캐시 overflow 수입니다.
이 수는 특정 테이블 캐시 인스턴스에 trigger가 있는 테이블이 최대값보다 많을 때 1만큼 증가합니다.
즉, 이 status variable은
Table_open_cache_triggers_hits가
캐시 인스턴스당 trigger가 있는 테이블의 최대 수를 초과할 때 증가하며,
이 최대값은
table_open_cache_triggers
/ table_open_cache_instances에 의해 결정됩니다.
Note
Table_open_cache_triggers_hits는 데이터 수정 작업에 의해서만 영향을 받습니다.
따라서
SELECT와 같은 read-only 작업이 trigger가 있는 테이블에 액세스할 때,
Table_open_cache_triggers_overflows도 영향을 받지 않습니다.
trigger가 있는 테이블에 대한 read-only 작업은
Table_open_cache_hits를 증가시키며;
Table_open_cache_hits가
table_open_cache /
table_open_cache_instances에 의해 결정되는 limit를 초과하면,
대신 Table_open_cache_overflows가 증가합니다.
internal XA 트랜잭션 회복을 위해 트랜잭션 코디네이터 역할을 할 때
mysqld가 사용하는 로그의 메모리 매핑 구현에 대해,
서버가 시작된 이후 로그에 사용된 page 최대 수를 나타냅니다.
Tc_log_max_pages_used와
Tc_log_page_size의 곱이 항상 로그 크기보다 상당히 작은 경우,
크기가 불필요하게 크므로 줄일 수 있습니다.
(크기는
--log-tc-size 옵션에 의해 설정됩니다.)
이 variable은 사용되지 않습니다:
이는 바이너리 로그 기반 회복에는 필요 없으며,
two-phase commit이 가능하고 XA 트랜잭션을 지원하는 스토리지 엔진 수가 1보다 클 때만
메모리 매핑 recovery 로그 메서드가 사용됩니다.
(InnoDB가 유일한 해당 엔진입니다.)
XA recovery 로그의 메모리 매핑 구현에 사용되는 page 크기입니다.
기본값은 getpagesize()를 사용하여 결정됩니다.
이 variable은
Tc_log_max_pages_used에 대해 설명한 동일한 이유로 사용되지 않습니다.
recovery 로그의 메모리 매핑 구현에 대해,
서버가 트랜잭션을 commit할 수 없어 로그에서 free page를 기다려야 했던 횟수입니다.
이 값이 크면,
--log-tc-size 옵션으로 로그 크기를 증가시키는 것이 좋습니다.
바이너리 로그 기반 회복의 경우,
two-phase commit이 진행 중이어서 바이너리 로그를 close할 수 없을 때마다 이 variable이 증가합니다.
(close 작업은 이러한 트랜잭션이 모두 종료될 때까지 기다립니다.)
서버 telemetry metric이 지원되는지 여부입니다.
자세한 내용은 MySQL Source Code documentation의 Server telemetry metrics service section을 참조하십시오.
서버가 Telemetry logs support로 컴파일되었는지 여부를 표시합니다.
자세한 내용은 MySQL Source Code documentation의 Server telemetry logs service section과 Chapter 35, Telemetry를 참조하십시오.
telemetry로 instrument된 현재 세션 수를 표시합니다. 이는 Telemetry 컴포넌트를 unload할 때, unload 작업을 block하는 세션 수를 모니터링하는 데 유용할 수 있습니다.
자세한 내용은 MySQL Source Code documentation의 Server telemetry traces service section과 Chapter 35, Telemetry를 참조하십시오.
서버 telemetry trace가 지원되는지 여부입니다.
자세한 내용은 MySQL Source Code documentation의 Server telemetry traces service section을 참조하십시오.
Telemetry 컴포넌트의 현재 initialization 상태를 나타냅니다. 코드에는 다음이 포함됩니다:
BOOT: Telemetry 컴포넌트가 로딩 중입니다.
INSTALL: Telemetry 컴포넌트가 로드되었으며 initializing 중입니다.
DETECT_RESOURCE: Telemetry 컴포넌트가 resource provider를 감지했으며 provider의 사용 가능 여부를 확인 중입니다.
provider가 사용 가능한 경우 resource detector가 호출됩니다.
provider가 사용 불가능한 경우, Telemetry 컴포넌트는 provider가 로드될 때까지 기다립니다.
DECODE_SECRET: Telemetry 컴포넌트가 로딩 중이며
telemetry.secret_provider가 설정되었음을 감지한 상태입니다.
secret provider 컴포넌트가 사용 가능한 경우, telemetry 컴포넌트는 secret provider를 호출합니다. secret provider 컴포넌트가 사용 불가능한 경우, telemetry 컴포넌트는 secret provider 컴포넌트가 로드될 때까지 기다립니다.
CONFIGURE: 필요한 모든 구성이 수집된 상태이며,
resource provider로부터의 resource와, 필요한 경우 secret provider로부터의 secret를 포함합니다.
Telemetry 컴포넌트 initialization은 컴포넌트 구성 단계로 진행됩니다.
READY: 컴포넌트 구성이 성공했습니다.
FAILED: 컴포넌트 구성이 실패했으며 완료되지 않았습니다.
UNINSTALL: Telemetry 컴포넌트가 제거 중이며 cleanup이 시작되었습니다.
자세한 내용은 Chapter 35, Telemetry를 참조하십시오.
TempTable 엔진이
temptable_max_ram 제한에 도달했기 때문에
디스크 기반으로 변환된
internal temporary tables 수입니다.
스레드 캐시에 있는 스레드 수입니다.
현재 open 상태인 커넥션 수입니다.
커넥션을 처리하기 위해 생성된 스레드 수입니다.
Threads_created가 크면,
thread_cache_size 값을 증가시키는 것이 좋습니다.
캐시 miss rate는
Threads_created/Connections로 계산할 수 있습니다.
sleeping 상태가 아닌 스레드 수입니다.
이 MySQL 인스턴스에서 사용 중인 OpenSSL 라이브러리의 런타임 버전입니다.
클라이언트에서 지정한 경우 이 세션에서 사용 중인 Server Name Indication(SNI)입니다. 지정되지 않은 경우 비어 있습니다. SNI는 TLS 프로토콜에 대한 extension입니다(OpenSSL이 이 status variable이 동작하도록 TLS extension을 사용하여 컴파일되어야 합니다). MySQL의 SNI 구현은 client-side에만 해당합니다.
서버가 up 상태였던 시간(단위: 초)입니다.
마지막 FLUSH STATUS statement 이후 경과한 시간(단위: 초)입니다.
7.1.9 Using System Variables
7.1.11 Server SQL Modes