DB

[DB] mariaDB 설정값 의미 정리

KrystalJo 2020. 8. 5. 18:05

 

 

* 설정값 변경

 

$ vi /etc/my.cnf

 

 

1. MySQL 서버는 외부로 부터 접속 요청을 받을 경우 인증을 위해 IP 주소를 호스트네임으로 바꾸는 과정을 수행하여 접속시에 불필요한 부하가 발생하게 됩니다. skip-name-resolve를 설정하시고 접속시에 IP 기반으로 접속을 하게 되면 hostname lookup 과정을 생략하게 되어 좀 더 빠르게 접속을 하실 수 있습니다.

 

# vi /etc/my.cnf

 

[mysqld]

skip-external-locking

skip-host-cache

skip-locking

skip-name-resolve

 

2. thread 재 사용을 위한 Thread Cache 수로써, Cache 에 있는 Thread 수보다 접속이 많으면 새롭게 Thread를 생성한다.

thread_cache = 8

thread_cache_size = 2000

 

3. 최대 동시 접속 가능 수

max_connections = 5000

 

4. MySQL의 임시 기억 공간인 버퍼 풀 메모리 크기를 지정한다.

이 값으로 전체 메모리의 50~80%를 권하기도 하지만,

메모리가 넉넉하지 않은 환경이라면 이 값을 20% 이하로 줄여야 할 때도 있다.

버퍼 풀 메모리가 너무 크면 하드디스크를 가상 메모리로 쓰는 작업(스와핑)이 일어나 매우 느려지는 원인이 될 수 있기 때문이다.

innodb_buffer_pool_size=1011M

 

 

# vi /etc/my.cnf

 

[mysqld]

skip-host-cache

thread_cache = 8

thread_cache_size = 2000

max_connections = 5000

innodb_buffer_pool_size=1011M

 

 

 

 

* 모니터링 쿼리

 

 

서버는 자신의 동작 정보를 제공하는 많은 상태 변수를 관리한다. 이러한 변수와 값들은SHOW [GLOBAL] STATUS명령문을 통해 확인할 수 있다.

FLUSH STATUS명령문을 사용하면많은 종류의 상태 변수를 0으로 리셋 시킬 수가 있다.

 

상태 변수는 아래와 같은 의미를 가지고 있다. 아무런 버전 정보가 없는 변수들은 5.0 이전 버전에서부터 있었던 것들이다.

 

Aborted_clients: 클라이언트가 올바르게 닫히지 않고 멈추었기 때문에 중단된 연결 숫자.

Aborted_connects: MySQL 서버 연결 실패 횟수.

Binlog_cache_disk_use: 트랜젝션으로부터 받은 명령문을 저장하기 위해 임시 파일을 사용하고binlog_cache_size변수 값을 초과

해서 임시 바이너리 로그캐시를 사용한 트랜젝션의 숫자.

Binlog_cache_use: 임시 바이너리 로그 캐시를 사용한 트랜젝션의 숫자.

Bytes_received: 모든 클라이언트로부터 전달 받은 바이트의 숫자.

Bytes_sent: 모든 클라이언트에 전달된 바이트의 수.

Com_xxx: Com_xxx 명령문 카운터변수는 각 xxx 명령문이 실행된 횟수를 가리킨다. 각 명령문 타입에 대해서는 하나의 상태 변수가 존재한다. 예를 들면,Com_deleteCom_insert는 DELETE와 INSERT 명령문을 각각 카운트 한다. 하지만, 쿼리 캐시가 쿼리 결과를 리턴하면, 서버는 Com_select가 아닌 Qcache_hits 상태 변수를 증가 시킨다.

모든 Com_stmt_xxx 변수들은 프리페어드 명령문 인수가 알려지지 않았거나 또는 실행 도중에 에러가 발생하더라도 증가를 하게 된다. 다른 말로 설명하면, 이 변수들은 성공적으로 완료된 요청 (request)의 수가 아닌, 입력된 요청 수에 상응한다는 것이다.

Com_stmt_xxx 상태 변수는 다음과 같다:

Com_stmt_prepare

Com_stmt_execute

Com_stmt_fetch

Com_stmt_send_long_data

Com_stmt_reset

Com_stmt_close

이 변수들은 프리페어드 명령문의 명령어를 표현한다. 이들 변수 이름들은 네트워크 레이어(layer)에서 사용되는COM_xxx 명령어 셋을참조한다. 다른 말로 표현하면, 이들 변수 값은 프리페어드 명령문 API가 mysql_stmt_prepare(), mysql_stmt_execute()와 같은 것을 호출한 후에 실행될 때마다 증가하게 되는 것이다. 하지만,Com_stmt_prepare,Com_stmt_execute, 그리고Com_stmt_clos역시 PREPARE, EXECUTE, 또는 DEALLOCATE PREPARE에 대해서도 각각 증가를 한다. 또한, 이전 버전의 명령문 카운터 변수 (4.1.3 이후에 사용된것들)인Com_prepare_sql,Com_execute_sql, 그리고Com_dealloc_sql역시 PREPARE, EXECUTE, 및 DEALLOCATE PREPARE 명령문에 대해서 증가를 하게 된다.Com_stmt_fetch는 커서가 가져가는 네트워크 라운드-트립(round-trip)의 전체 숫자를 표현한다.

Compression: 클라이언트 연결이 클라이언트/서버 프로토콜에서압축 사용을 제어하는 변수. MySQL 5.1.2에서 추가됨.

Connections: MySQL 서버에 시도된 접속 횟수 (성공 또는 실패 모두 포함).

Created_tmp_disk_tables: 서버가 명령문을 실행할 때 자동으로 디스크에 생성하는 임시 테이블의 숫자.

Created_tmp_files: mysqld가 생성한 임시 파일의 숫자.

Created_tmp_tables: 서버가 명령문을 실행할 때 자동으로 생성되는 메모리 상주 임시 테이블의 숫자.Created_tmp_disk_tables이 크다면,tmp_table_size변수의 값을 늘려서 임시 테이블이 디스크가 아닌 메모리 기반으로 생성되도록 할수도 있다.

Delayed_errors: 에러를 발생 시키는 (아마도 duplicate key) INSERT DELAYED로 작성된열의 숫자.

Delayed_insert_threads: 사용 중에 있는 INSERT DELAYED 핸들러 쓰레드 숫자.

Delayed_writes: INSERT DELAYED가 기록한열의 숫자.

Flush_commands: FLUSH 명령문의 실행 숫자.

Handler_commit: 내부 COMMIT 명령문의 숫자.

Handler_delete: 열이 테이블에서 삭제된 횟수.

Handler_discover: MySQL 서버는 NDB Cluster 스토리지 엔진이 주어진 이름을 사용하는 테이블을 인식하는지 요청할 수 있다. 이것을 디스커버리 (discovery)라고 부른다. Handler_discover는 테이블들이 이 메커니즘을 통해서 몇번이나 발견되었는지를 나타낸다.

Handler_prepare: 2-단계 실행 연산에 대한 프리페어 구문용 카운터.

Handler_read_first: 첫 번째 엔트리가 인덱스에서 읽혀진 횟수. 이 값이 크다면, 서버는 많은 수의 전체 인덱스 스캔 (full index scan)을 실행하고 있음을 의미하는 것이다; 예를 들면, SELECT col1 FROM foo의 경우에서 col1은 인덱스 된 것으로 간주된다.

Handler_read_key: 키를 근거로 열을 읽기 위한 요청 횟수. 이 값이 크다면, 여러분이 사용하는 테이블이 쿼리에 올바르게 인덱스 되어 있다는 좋은 의미다.

Handler_read_next: 키 순서에서 바로 다음에 있는 열을 읽기 위한 요청 횟수. 인덱스 컬럼을 범위 제한 값으로 쿼리 하거나 또는 인덱스 스캔을 한다면, 이 값이 증가하게 된다.

Handler_read_prev: 키 순서에서 바로 전에 있는 열을 읽기 위한 요청 횟수. 이러한 읽기 방식은 주로 ORDER BY ... DESC를 최적화 시키기 위해 사용된다.

Handler_read_rnd: 고정된 위치를 근거로 열을 읽기 위한 요청 횟수. 결과 값을 정렬하도록 요청하는 많은 수의 쿼리를 실행하는 중이라면, 이 값이 높게 설정된다. 이것은 MySQL이 전체 테이블을 스캔할 것을 요구하는쿼리를 많이 가지고 있거나 또는 키를 정확히 사용하지 않는 조인(join)을 가지고 있는 것이다.

Handler_read_rnd_next: 데이터 파일에 있는 다음 열을 읽기 위한 요청 횟수. 이 값은 여러분이 많은 수의 테이블 스캔을 할 경우에 높게 된다. 이것은 일반적으로 테이블이 올바르게 인덱스 되지 않았거나 또는 쿼리가 인덱스를 제대로 활용하지 못하고 있음을 의미한다.

Handler_rollback: 스토리지 엔진으로 하여금 롤백 연산을 실행하도록 요청하는 횟수.

Handler_savepoint: 스토리지 엔진으로 하여금 세이브 포인트 (savepoint)를 설정하도록 요청하는 횟수.

Handler_savepoint_rollback: 스토리지 엔진으로 하여금 세이브 포인트로 롤백 하도록 요청하는 횟수.

Handler_update: 테이블에 있는 열을 업데이트 하기 위해 요청하는 횟수.

Handler_write: 테이블에 열을 하나 삽입하기 위한 요청 횟수.

Innodb_buffer_pool_pages_data: 데이터를 가지고 있는 페이지 숫자.

Innodb_buffer_pool_pages_dirty: 현재 더티 (dirty)한 데이터가 있는 페이지 숫자.

Innodb_buffer_pool_pages_flushed: 버퍼 풀 페이지-플러시 (buffer poolpage-flush) 요청 숫자.

Innodb_buffer_pool_pages_free: 프리 (free) 페이지 숫자.

Innodb_buffer_pool_pages_latched: InnoDB 버퍼 풀에 있는 latched 페이지 숫자. 이것은 현재 읽히고 있거나 또는 쓰여지고있거나 또는 여러 가지 이유로 인해 플러시 될 수 없거나 또는 삭제할 수 없는 페이지들을 가리킨다.

Innodb_buffer_pool_pages_misc: 열 잠금 또는 적응적 해시 인덱스(adaptive hash index)와 같은 관리적인 오버 헤드를 위해 할당되었기 때문에 비지 (busy) 상태인 페이지의 숫자. 이 값은Innodb_buffer_pool_pages_total – Innodb_buffer_pool_pages_free – Innodb_buffer_pool_pages_data형태로도 계산할 수 있다.

Innodb_buffer_pool_pages_total: 페이지에 있는 버퍼 풀의 전체 크기.

Innodb_buffer_pool_read_ahead_rnd: InnoDB에 의해 초기화되는 “무작위(random)” 읽기 위주 (read-aheads) 숫자. 이것은 쿼리가 테이블의 많은 부분을 무작위 순서로 스캔 할 때 발생된다. MySQL 5.0.2에서 추가 됨.

Innodb_buffer_pool_read_ahead_seq: InnoDB에 의해 초기화되는 시퀀셜 읽기 위주 (read-aheads) 숫자. 이것은 InnoDB가 시퀀셜로 전체 테이블을 스캔할 때 발생한다.

Innodb_buffer_pool_read_requests: InnoDB가 실행한논리적인 읽기 요청의 숫자.

Innodb_buffer_pool_reads: InnoDB가 버퍼 풀에서찾지 못해서 단일 페이지 읽기를 해야만 하는 논리적 읽기 횟수.

Innodb_buffer_pool_wait_free: 일반적으로는, InnoDB 버퍼 풀에 대한 쓰기 연산은 백그라운드에 실행된다.를 한다. 하지만, 페이지 읽기 연산이나 또는 페이지 생성이필요하지만 클린 (clean) 페이지를 사용할 수 없는 경우에는, 페이지가 우선 플러시 되는 것을기다려야 한다. 이 카운터는 이러한 대기 인스턴스를 카운트 한다. 버퍼 풀의 크기가 올바르게 설정 되었다면, 이 값은 작을 것이다.

Innodb_buffer_pool_write_requests: InnoDB 버퍼 풀에서 실행된 쓰기 연산 수.

Innodb_data_fsyncs: 지금까지 실행된 fsync() 연산 수.

Innodb_data_pending_fsyncs: 현재 지연되고 있는 fsync() 연산 수.

Innodb_data_pending_reads: 현재 지연되고 있는 읽기 연산 수.

Innodb_data_pending_writes: 현재 지연되고 있는 쓰기 연산 수.

Innodb_data_read: 지금까지 읽은 데이터의 양 (바이트 단위).

Innodb_data_reads: 데이터 읽기 연산의 전체 숫자.

Innodb_data_writes: 데이터 쓰기 연산의 전체 숫자.

Innodb_data_written: 지금까지 기록한 데이터의 양 (바이트 단위).

Innodb_dblwr_writes,Innodb_dblwr_pages_written: 실행을 마친 중복 기록 (doublewrite) 연산 숫자와 이러한 목적으로 작성된 페이지의 숫자. Section 14.5.14.1,“InnoDB 디스크 I/O”를 참조할것.

Innodb_log_waits: 로그 버퍼가 너무 작아서 계속 진행을 하기 전에 플러시 되기를 요청 받은 대기횟수.

Innodb_log_write_requests: 로그 기록 연산 요청 숫자.

Innodb_log_writes: 로그 파일 대한 물리적 기록 연산 수.

Innodb_os_log_fsyncs: 로그 파일에서 실행된 fsync() 쓰기 연산 수.

Innodb_os_log_pending_fsyncs: 지연되고 있는 로그 파일 fsync() 연산의 수.

Innodb_os_log_pending_writes: 지연되고 있는 로그 파일 쓰기 연산의 수.

Innodb_os_log_written: 로그 파일에 기록된 바이트 숫자.

Innodb_page_size: 컴파일 된 InnoDB 페이지의 크기 (디폴트는 16KB). 페이지에서는 많은 값들이 카운트 된다; 페이지 크기는 이러한 것들이 손쉽게 바이트 단위로 변환되도록 해준다.

Innodb_pages_created: 생성된 페이지의 숫자.

Innodb_pages_read: 읽혀진 페이지 숫자.

Innodb_pages_written: 기록된 페이지의 숫자.

Innodb_row_lock_current_waits: 현재 대기 상태에 있는 열 잠금의 숫자.

Innodb_row_lock_time: 열 잠금을 얻기 위해 소비한 전체 시간 (밀리 초 단위).

Innodb_row_lock_time_avg: 열 잠금을 얻기 위한 평균 시간 (밀리 초 단위).

Innodb_row_lock_time_max: 열 잠금을 얻기 위한 최대 소비 시간 (밀리 초 단위).

Innodb_row_lock_waits: 열 잠금을 기다려야만 하는 횟수.

Innodb_rows_deleted: InnoDB 테이블에서 삭제된 열의 숫자.

Innodb_rows_inserted: InnoDB 테이블에 삽입된 열의 숫자.

Innodb_rows_read: InnoDB 테이블에서 읽은 열의 숫자.

Innodb_rows_updated: InnoDB 테이블에 업데이트 된 열의 숫자.

Key_blocks_not_flushed: 변경은 되었으나 아직까지는 디스크에 플러시 되지 않은 키 캐시 안에 있는 키블록의 숫자.

Key_blocks_unused: 키 캐시에 있는 아직 사용되지 않은 블록의 숫자. 이 값을 사용해서 얼마나 많은 키 캐시가 사용 중에 있는지를 알아낼 수가 있다; Section 5.2.3,“시스템 변수”에서key_buffer_size를 참조하기바란다.

Key_blocks_used: 키 캐시에 있는 이미 사용된 블록의 숫자. 이 값은 하이-워터 마크 (high-water mark)로서, 동시에 사용될 수 있는 블록의 최대 숫자를 가리키게 된다.

Key_read_requests: 키 블록을 캐시로부터 읽기 위한 요청 숫자.

Key_reads: 디스크에서 키 블록을 물리적으로 읽는 횟수. 만약에 Key_reads의 값이 크다면,key_buffer_size값은 아마도 매우 작게 된다.캐시가 안 되는 비율 (miss rate)은 Key_reads/Key_read_requests로 계산할 수 있다.

Key_write_requests: 키 블록을 캐시에 기록하기 위한 요청 횟수.

Key_writes: 키 블록을 디스크에 물리적으로 기록하는 횟수.

Last_query_cost: 쿼리 옵티마이저가 계산한 최종 컴파일 쿼리의 전체 가격. 이것은 동일 쿼리에 대한 서로 다른 쿼리 플랜간의 비용을 비교할 때 유용하다. 디폴트 값은 0 이며, 이것은 어떠한 쿼리도 아직 컴파일 되지 않았음을 가리킨다. Last_query_cost는 세션 변수이다.

Max_used_connections: 서버가 구동된 이후에 사용 중에 있는 동시 최대 연결 수.

Ndb_cluster_node_id: 서버가 MySQL 클러스터 노드로구동 중이라면, 이 변수의 값은 클러스터에 있는 자신의 노드 ID가 된다.

서버가 MySQL 클러스터의일부분이 아닌 경우에는, 이 변수 값이 0이 된다.

Ndb_config_from_host: 서버가 MySQL 클러스터의일부분이라면, 이 변수의 값은 호스트 이름 또는 클러스터 관리 서버의 IP 주소가 된다. 서버가 MySQL의 일부분이 아니라면, 변수 값은 빈 스트링 (empty string)이 된다. MySQL 5.1.12 이전에서는 이 변수를Ndb_connected_host라고 했다.

Ndb_config_from_port: 서버가 MySQL 클러스터의 일부분이라면, 이 변수는 클러스터 관리 서버에 연결하는 포트 번호가 된다.

서버가 MySQL 클러스터의 일부분이 아니라면, 이 변수는 0이 된다. MySQL 5.1.12 이전에는 이 변수를Ndb_connected_port라고 했다.

Ndb_number_of_data_nodes: 서버가 MySQL 클러스터의 일부분이라면, 이 변수는 클러스터의 데이터 노드가 된다.

서버가 MySQL 클러스터의 일부분이 아니라면, 이 변수 값은 0이 된다. MySQL 5.1.12 이전에는 이 변수Ndb_number_of_storage_nodes라고 했다.

Not_flushed_delayed_rows: INSERT DELAY 쿼리에 쓰여지기를기다리고 있는 열의 숫자.

Open_files: 열려 있는 파일의 숫자.

Open_streams: 열려 있는 스트링의 숫자 (주로 로깅을 위해 사용되는).

Open_tables: 열려 있는 테이블의 숫자.

Opened_tables: 열린 적이 있는 테이블의 숫자.Opened_tables이 크다면, table_cache 값은 아마도매우 작게 된다.

Prepared_stmt_count: 프리페어드 명령문의 현재 숫자. (명령문의 최대 개수는max_prepared_stmt_count시스템 변수로 지정한다.) 이 변수는 MySQL 5.1.14에서 추가되었다.

Qcache_free_blocks: 쿼리 캐시에 있는 프리 메모리 블록의 숫자.

Qcache_free_memory: 쿼리 캐시를 위한 프리 (free) 메모리의 양.

Qcache_hits: 쿼리 캐시 히트 (hit) 숫자.

Qcache_inserts: 쿼리 캐시에 추가된 쿼리의 숫자.

Qcache_lowmem_prunes: 메모리 부족으로 인해 쿼리 캐시에서 삭제된 쿼리의 숫자.

Qcache_not_cached: 캐시 되지 않은 (non-cached) 쿼리의 숫자 (캐시 할 수 없거나, 또는 query_cache_type 설정으로 인해 캐시 되지 않은).

Qcache_queries_in_cache: 쿼리 캐시에 등록되어 있는 쿼리의 숫자.

Qcache_total_blocks: 쿼리 캐시에 있는 블록의 전체 숫자.

Questions: 클라이언트가 서버에 보낸 명령문의 숫자.

Rpl_status: 페일-세이프 (fail-safe) 리플리케이션의 상태 (아직 구현되지 않음).

Select_full_join: 인덱스를 사용하지 않기 때문에 테이블을 스캔 하는 조인 (join)의 숫자. 이 값이 0 이면, 테이블에 있는 인덱스를 조심스럽게 검사하기 바란다.

Select_full_range_join: 참조 테이블에서 범위 검색을 사용하는 조인 (join)의 숫자.

Select_range: 첫 번째 테이블에서 범위를 사용한 조인 (join)의 숫자. 이것은 일반적으로 값이 상당히 크다고 하더라도치명적인 문제는 아니다.

Select_range_check: 각 열을 사용한 이후에 키 사용량을 체크하는 키가 없는 조인의 숫자. 이것의 값이 0 이 아니면, 테이블에 있는 인덱스를 주의 깊게 살펴 보아야 한다.

Select_scan: 첫 번째 테이블의 전체 스캔을 행한 조인의 숫자.

Slave_open_temp_tables: 슬레이브 SQL 쓰레드가 현재 오픈한 임시 테이블의숫자.

Slave_running: 서버가 마스터에 연결되어 있는 슬레이브라면, 이 값은 ON.

Slave_retried_transactions: 서버 스타트업 이후에 리플리케이션 슬레이브 SQL 쓰레드가 트랜젝션을 재 시도한 전체 횟수.

Slow_launch_threads: slow_launch_time 시간보다 더많은 생성 시간이 필요한 쓰레드의 숫자.

Slow_queries: long_query_time 시간보다 오래걸리는 쿼리의 숫자. Section 5.11.5,“슬로우 쿼리 로그”를 참조할 것.

Sort_merge_passes: 정렬 알고리즘을 사용해야만 하는 병합 패스 (merge pass)의 숫자. 이 값이 크다면, 여러분은 sort_buffer_size 시스템 변수의 값을 늘리는 것을 고려해야 한다.

Sort_range: 범위를 사용해서 실행된 정렬의 숫자.

Sort_rows: 정렬된 열의 숫자.

Sort_scan: 테이블 스캔에 의해 실행된 정렬의 숫자.

Ssl_xxx: SSL 접속을 위해 사용된 변수들.

Table_locks_immediate: 테이블 잠금을 즉시 획득한 횟수.

Table_locks_waited: 테이블 잠금을 즉시 획득하지 못하고 대기가 필요했던 횟수. 이 값이 크고 성능상에 문제가 있다면, 여러분은 우선 쿼리를 최적화 하여야 하고, 그 다음에 테이블을 분리하거나 또는 리플리케이션을사용해야 한다.

Tc_log_max_pages_used: mysqld가 내부 XA 트랜젝션을 위한 트랜젝션 코디네이터로구동을 할 때 이것에 의해 사용되는 로그의 메모리-맴을 구현하는 경우, 이 변수는 서버가 시작된 이후 로그가 사용했던 가장 큰 페이지를 가리킨다.Tc_log_max_pages_usedTc_log_page_size의 결과가로그 크기보다 항상 중요하지 않다면, 이 변수의 크기는 필요한 것 보다 크며 이것을 줄이는 것이 가능해진다. (이 변수의 크기는 --log-tc-size 옵션으로 설정할 수 있다. 현재, 이 변수는 사용되지 않는다: 이것은 바이너리 로그-기반 복구에 불필요한 것이며, 메모리-맵 복구 로그 방식은 2-단계 실행을 하나 이상의 스토리지 엔진이지원하지 않는 한 사용되지 않는다). (InnoDB만이 유일하게 이것을 지원하고 있다.)

Tc_log_page_size: XA 복구 로그에 대한 메모리-맵을 구현하기위해 사용하는 페이지 크기. 디폴트 값은 getpagesize() 함수를 사용해서 결정한다. 현재, 이 변수는Tc_log_max_pages_used변수에 대해서위에서 설명한 것과 같은 이유로 사용되지 않고 있다.

Tc_log_page_waits: 복구 로그에 대한 메모리-맵을 구현하는경우, 이 변수는 서버가 트랜젝션을 실행하지 못하고 로그에 있는 프리 페이지를 대기해야 하는 경우마다 하나씩 증가를한다. 만일 이 변수가 크다면, 로그 크기를 증가 시켜 보도록 한다 (--log-tc-size 옵션을 사용한다). 바이너리 로그-기반 복구의 경우에는, 이 변수는 2-단계 실행이 진행 중이기 때문에 바이너리로그를 닫을 수 없을 때마다 하나씩 증가한다. (닫기는 모든 이러한 트랜젝션이 완료 되기까지 대기를 한다.)

Threads_cached: 쓰레드 캐시에 있는 쓰레드의 숫자.

Threads_connected: 현재 열려 있는 연결 숫자.

Threads_created: 연결을 처리하기 위해 생성된 쓰레드의 숫자. 만약에 Threads_created가 크다면,thread_cache_size값을 늘려본다. 캐시 히트 비율은Threads_created/Connections로 계산할 수가 있다.

Threads_running: 슬리핑 (sleeping) 상태가 아닌쓰레드의 숫자.

Uptime: 서버가 올라와 있는 시간.

 

ex)

show status like '%connect%'; #

show status like '%clients%'; # 클라이언트가 올바르게 닫히지 않고 멈추었기 때문에 중단된 연결 숫자.

show status like '%thread%';

show variables like '%max_connection%';

show status like '%Delayed_insert_threads%'