[MySQL] SHOW ENGINE과 SHOW ENGINES 명령

■ SHOW ENGINE 명령어 사용법

SHOW ENGINE engine_name {STATUS | MUTEX}

 

SHOW ENGINE 스토리지 엔진에 대한 운영 정보를 표시합니다. PROCESS 권한이 필요합니다. 문장에는 다음과 같은 다양한 방법이 있습니다.

SHOW ENGINE INNODB STATUS

SHOW ENGINE INNODB MUTEX

SHOW ENGINE PERFORMANCE_SCHEMA STATUS

SHOW ENGINE INNODB STATUS 표시는 InnoDB 스토리지 엔진의 상태에 대한 표준 InnoDB 모니터의 광범위한 정보를 표시합니다.

InnoDB 모니터 바로가기

SHOW ENGINE INNODB MUTEX InnoDB 뮤텍스 rw-lock 통계를 표시합니다.

 

SHOW ENGINE INNODB MUTEX 출력은 MySQL 5.7.2에서 제거되었습니다. MySQL 5.7.8에서 개정되고 다시 도입되었습니다.

 

MySQL 5.7.8에서 뮤텍스 통계 수집은 다음 옵션을 사용하여 동적으로 구성됩니다.

+ 뮤텍스 통계 수집을 활성화하려면 다음을 실행합니다.

SET GLOBAL innodb_monitor_enable='latch';

 

+ 뮤텍스 통계를 재설정하려면 다음을 실행합니다.

SET GLOBAL innodb_monitor_reset='latch';

 

+ 뮤텍스 통계 수집을 비활성화하려면 다음을 실행합니다.

SET GLOBAL innodb_monitor_disable='latch';

 

SHOW ENGINE INNODB MUTEX 대한 뮤텍스 통계 수집은 innodb_monitor_enable = 'all' 설정하여 활성화하거나 innodb_monitor_disable = 'all' 설정하여 비활성화 수도 있습니다.

 

SHOW ENGINE INNODB MUTEX 출력에는 다음과 같은 컬럼이 있습니다.

+ Type

항상 InnoDB 표시됩니다.

 

+ Name

MySQL 5.7.8 이전의 이름 필드는 뮤텍스가 구현된 소스 파일과 뮤텍스가 생성된 파일의 번호를 보고합니다. 번호는 MySQL 버전에 따라 다릅니다. MySQL 5.7.8부터는 뮤텍스 이름만 보고됩니다. 파일 이름과 번호는 여전히 rwlocks 대해 보고됩니다.

 

+ Status

뮤텍스 상태.

MySQL 5.7.8 이전에는 WITH_DEBUG MySQL 컴파일 타임에 정의된 경우 상태 필드에 여러 값이 표시됩니다. WITH_DEBUG 정의되지 않은 경우 명령문은 os_waits 값만 표시합니다. 후자의 경우 (With_DEBUG가없는 경우), 출력을 기반으로하는 정보는 rwlock 보호하는 정규(regular) 뮤텍스와 뮤텍스를 구별하기에 충분하지 않습니다 (여러 리더 또는 단일 라이터를 허용 ). 결과적으로 출력은 동일한 뮤텍스에 대해 여러 행을 포함하는 것처럼 보일 있습니다. Pre-MySQL 5.7.8 상태 필드 값은 다음과 같습니다.

- count 뮤텍스가 요청된 횟수를 나타냅니다.

- spin_waits spinlock 번이나 실행했는지 나타냅니다.

- spin_rounds 스핀록 라운드수를 나타냅니다. (spin_rounds spin_waits 나눈 값은 평균 라운드 수를 제공합니다.)

- os_waits 운영 체제 대기 수를 나타냅니다. 이것은 스핀락이 작동하지 않을 발생합니다 (스핀 동안 뮤텍스가 잠기지 않았으며 운영 체제에 양보하고 기다려야했습니다).

- os_yields 뮤텍스를 잠그려고 시도하는 스레드가 타임 슬라이스를 포기하고 운영 체제에 양보한 횟수를 나타냅니다 (다른 스레드를 실행하도록 허용하면 뮤텍스가 해제되어 잠금 있음).

- os_wait_times 운영 체제 대기에 소요 시간 (밀리 ) 나타냅니다. MySQL 5.7에서는 타이밍이 비활성화되어 있으며 값은 항상 0입니다.

 

MySQL 5.7.8부터 상태 필드는 회전, 대기 호출 수를 보고합니다. InnoDB 외부에서 구현되는 저수준 운영 체제 뮤텍스에 대한 통계는 보고되지 않습니다.

+ 스핀은 스핀 수를 나타냅니다.

+ 대기는 뮤텍스 대기 수를 나타냅니다.

+ 호출은 뮤텍스가 요청 횟수를 나타냅니다.

 

SHOW ENGINE INNODB MUTEX 버퍼 풀이있는 시스템에서 출력량이 너무 많기 때문에 버퍼 블록에 대한 뮤텍스 rw-lock 나열하지 않습니다. 그러나 SHOW ENGINE INNODB MUTEX 버퍼 블록 뮤텍스 rw-lock 대한 집계 BUF_BLOCK_MUTEX 스핀, 대기 호출 값을 인쇄합니다. SHOW ENGINE INNODB MUTEX 또한 대기한 적이 없는 뮤텍스 또는 rw-lock 나열하지 않습니다 (os_waits = 0). 따라서 SHOW ENGINE INNODB MUTEX 하나 이상의 OS 레벨 대기를 유발한 버퍼 외부의 뮤텍스 rw-lock 대한 정보만 표시합니다.

 

SHOW ENGINE PERFORMANCE_SCHEMA STATUS 사용하여 성능 스키마 코드의 내부 작동을 검사합니다.

mysql> SHOW ENGINE PERFORMANCE_SCHEMA STATUS\G
...
*************************** 3. row ***************************
  Type: performance_schema
  Name: events_waits_history.size
Status: 76
*************************** 4. row ***************************
  Type: performance_schema
  Name: events_waits_history.count
Status: 10000
*************************** 5. row ***************************
  Type: performance_schema
  Name: events_waits_history.memory
Status: 760000
...
*************************** 57. row ***************************
  Type: performance_schema
  Name: performance_schema.memory
Status: 26459600
...

명령문은 DBA 다양한 성능 스키마 옵션이 메모리 요구 사항에 미치는 영향을 이해하도록 돕기위한 것입니다.

 

이름 값은 각각 내부 버퍼와 버퍼 속성의 이름을 갖는 부분으로 구성됩니다. 다음과 같이 버퍼 이름을 표시합니다.

+ 테이블로 노출되지 않은 내부 버퍼는 괄호 안에 표시됩니다. : (pfs_cond_class) .size, (pfs_mutex_class) .memory.

+ performance_schema 데이터베이스에서 테이블로 노출되는 내부 버퍼는 괄호없이 테이블 이름을 따서 명명됩니다. : events_waits_history.size, mutex_instances.count.

+ 성능 스키마에 전체적으로 적용되는 값은 performance_schema 시작합니다. : performance_schema.memory

 

버퍼 속성에는 다음과 같은 의미가 있습니다.

+ size 테이블의 크기와 같이 구현에 사용된 내부 레코드의 크기입니다. 크기 값은 변경할 없습니다.

+ count 테이블의 수와 같은 내부 레코드 수입니다. 성능 스키마 구성 옵션을 사용하여 카운트 값을 변경할 있습니다.

+ 테이블의 경우 tbl_name.memory 크기와 개수의 곱입니다. 전체적으로 성능 스키마의 경우 performance_schema.memory 사용된 모든 메모리의 합계 (다른 모든 메모리 값의 합계)입니다.

 

어떤 경우에는 성능 스키마 구성 매개 변수와 SHOW ENGINE 사이에 직접적인 관계가 있습니다. 예를 들어 events_waits_history_long.count performance_schema_events_waits_history_long_size 해당합니다. 다른 경우에는 관계가 복잡합니다. 예를 들어 events_waits_history.count performance_schema_events_waits_history_size (스레드 ) performance_schema_max_thread_instances (스레드 ) 곱한 값에 해당합니다.

 

좀더 자세한 메트릭들에 대한 설명은 아래 페이지에서 더 자세히 정리했습니다.

https://myinfrabox.tistory.com/258

 

[MySQL] InnoDB 스토리지 엔진 상태 모니터링

■ InnoDB 스토리지 엔진 모니터링 방법 InnoDB 스토리지의 상태를 확인하는 방법은 infomration_Schema와 sys스키마, performance 스키마를 확인하는 방법등이 있습니다. 이중에서 가장 대표전인것이 Show 명

myinfrabox.tistory.com

 

▶︎ SHOW ENGINE NDB STATUS.

서버에 NDB 스토리지 엔진이 활성화 되어있는 경우 SHOW ENGINE NDB STATUS 연결된 데이터 노드 , 클러스터 연결 문자열 클러스터 바이너리 로그 에포크 수와 같은 클러스터 상태 정보와 함께 MySQL Server 클러스터에 연결할   생성 다양한 클러스터 API 개체 수를 표시합니다. 문장의 샘플 출력은 다음과 같습니다.

mysql> SHOW ENGINE NDB STATUS;
+------------+-----------------------+--------------------------------------------------+
| Type       | Name                  | Status                                           |
+------------+-----------------------+--------------------------------------------------+
| ndbcluster | connection            | cluster_node_id=7,
  connected_host=198.51.100.103, connected_port=1186, number_of_data_nodes=4,
  number_of_ready_data_nodes=3, connect_count=0                                         |
| ndbcluster | NdbTransaction        | created=6, free=0, sizeof=212                    |
| ndbcluster | NdbOperation          | created=8, free=8, sizeof=660                    |
| ndbcluster | NdbIndexScanOperation | created=1, free=1, sizeof=744                    |
| ndbcluster | NdbIndexOperation     | created=0, free=0, sizeof=664                    |
| ndbcluster | NdbRecAttr            | created=1285, free=1285, sizeof=60               |
| ndbcluster | NdbApiSignal          | created=16, free=16, sizeof=136                  |
| ndbcluster | NdbLabel              | created=0, free=0, sizeof=196                    |
| ndbcluster | NdbBranch             | created=0, free=0, sizeof=24                     |
| ndbcluster | NdbSubroutine         | created=0, free=0, sizeof=68                     |
| ndbcluster | NdbCall               | created=0, free=0, sizeof=16                     |
| ndbcluster | NdbBlob               | created=1, free=1, sizeof=264                    |
| ndbcluster | NdbReceiver           | created=4, free=0, sizeof=68                     |
| ndbcluster | binlog                | latest_epoch=155467, latest_trans_epoch=148126,
  latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,
  latest_applied_binlog_epoch=0                                                         |
+------------+-----------------------+--------------------------------------------------+

이러한 행의 상태 컬럼은 MySQL 서버와 클러스터의 연결 클러스터 바이너리 로그의 상태에 대한 정보를 각각 제공합니다. 상태 정보는 쉼표로 구분된 이름/ 쌍의 형식입니다.

 

연결 행의 상태 컬럼에는 다음 표에 설명된 이름/ 쌍이 포함됩니다.

Name Value
cluster_node_id 클러스터에있는 MySQL 서버의 노드 ID
connected_host MySQL 서버가 연결된 클러스터 관리 서버의 호스트 이름 또는 IP 주소
connected_port MySQL 서버에서 관리 서버에 연결하는 사용하는 포트 (connected_host)
number_of_data_nodes 클러스터에 구성된 데이터 노드 (, 클러스터 config.ini 파일의 [ndbd] 섹션 )
number_of_ready_data_nodes 실제로 실행중인 클러스터의 데이터 노드
connect_count mysqld 클러스터 데이터 노드에 연결 또는 연결된 횟수

 

binlog 행의 상태 컬럼에는 NDB 클러스터 복제와 관련된 정보가 포함됩니다. 포함 이름/ 쌍은 다음 표에 설명되어 있습니다.

 

Name Value
latest_epoch MySQL 서버에서 가장 최근에 실행 가장 최근 에포크 (, 서버에서 실행 가장 최근 트랜잭션의 시퀀스 번호)
latest_trans_epoch 클러스터의 데이터 노드에서 처리 가장 최근 에포크
latest_received_binlog_epoch 이진 로그 스레드에서받은 가장 최근 에포크
latest_handled_binlog_epoch 이진 로그 스레드에서 처리 가장 최근 에포크 (이진 로그에 쓰기 위해)
latest_applied_binlog_epoch 실제로 바이너리 로그에 기록 가장 최근 에포크

 

클러스터 모니터링에 가장 유용할 것으로 보이는 SHOW ENGINE NDB STATUS 출력의 나머지 행은 다음과 같이 이름으로 나열됩니다.

+ NdbTransaction : 생성된 NdbTransaction 개체의 수와 크기. NDBTransaction NDB 테이블에서 테이블 스키마 작업 ( : CREATE TABLE 또는 ALTER TABLE) 수행될 때마다 생성됩니다.

+ NdbOperation : 생성 NdbOperation 개체의 수와 크기.

+ NdbIndexScanOperation : 생성된 NdbIndexScanOperation 객체의 수와 크기.

+ NdbIndexOperation : 생성 NdbIndexOperation 객체의 수와 크기.

+ NdbRecAttr : 생성된 NdbRecAttr 개체의 수와 크기. 일반적으로 이들중 하나는 SQL노드에서 데이터 조작 명령문을 수행할 때마다 작성됩니다.

+ NdbBlob : 생성된 NdbBlob 개체의 수와 크기. NDBBlob NDB테이블의 BLOB열과 관련된 작업마다 생성됩니다.

+ NdbReceiver : 생성된 NdbReceiver 개체의 수와 크기. 생성 컬럼의 수는 MySQL 서버가 연결된 클러스터의 데이터 노드 수와 동일합니다.

 

참고사항

SHOW ENGINE NDB STATUS 현재 세션 동안, 명령문이 실행되는 SQL 노드에 액세스하는 MySQL 클라이언트가 NDB 테이블 관련 작업을 수행하지 않은 경우 결과를 반환합니다.

 

 

 

■ SHOW ENGINES 명령어 사용법

SHOW [STORAGE] ENGINES

 

SHOW ENGINES 서버의 스토리지 엔진에 대한 상태 정보를 표시합니다. 이는 스토리지 엔진이 지원되는지 확인하거나 기본 엔진이 무엇인지 확인하는 특히 유용합니다.

 

mysql> SHOW ENGINES\G
*************************** 1. row ***************************
      Engine: InnoDB
     Support: DEFAULT
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
*************************** 2. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 3. row ***************************
      Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 4. row ***************************
      Engine: BLACKHOLE
     Support: YES
     Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 5. row ***************************
      Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 6. row ***************************
      Engine: CSV
     Support: YES
     Comment: CSV storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 7. row ***************************
      Engine: ARCHIVE
     Support: YES
     Comment: Archive storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 8. row ***************************
      Engine: PERFORMANCE_SCHEMA
     Support: YES
     Comment: Performance Schema
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 9. row ***************************
      Engine: FEDERATED
     Support: YES
     Comment: Federated MySQL storage engine
Transactions: NO
          XA: NO
  Savepoints: NO

SHOW ENGINES 출력은 사용된 MySQL 버전 기타 요인에 따라 달라질 있습니다.

 

SHOW ENGINES 출력에는 다음과 같은 컬럼이 있습니다.

+ Engine

스토리지 엔진의 이름입니다.

 

+ Support

다음 표에 표시된 것처럼 스토리지 엔진에 대한 서버의 지원 수준입니다.

Value Meaning

YES The engine is supported and is active

DEFAULT Like YES, plus this is the default engine

NO The engine is not supported

DISABLED The engine is supported but has been disabled

 

NO 값은 서버가 엔진을 지원하지 않고 컴파일되었으므로 런타임에 사용할 없음을 의미합니다.

DISABLED 값은 서버가 엔진을 비활성화하는 옵션으로 시작되었거나 이를 활성화하는데 필요한 모든 옵션이 제공되지 않았기 때문에 발생합니다. 후자의 경우 오류 로그에 옵션이 비활성화된 원인를 나타내는 내용이 포함되어야 합니다.

서버가 이를 지원하도록 컴파일되었지만 --skip-engine_name 옵션으로 시작된 경우 스토리지 엔진에 대해 DISABLED 표시될 수도 있습니다. NDB 스토리지 엔진의 경우 DISABLED 서버가 NDB 클러스터 지원으로 컴파일되었지만 --ndbcluster 옵션으로 시작되지 않았 음을 의미합니다.

모든 MySQL 서버는 MyISAM 테이블을 지원합니다. MyISAM 비활성화 없습니다.

 

+ Comment

스토리지 엔진에 대한 간단한 설명합니다.

 

+ Transactions

스토리지 엔진이 트랜잭션을 지원하는지 여부를 나타냅니다.

 

+ XA

스토리지 엔진이 XA 트랜잭션을 지원하는지 여부를 나타냅니다.

 

+ Savepoints

스토리지 엔진이 저장 점을 지원하는지 여부를 나타냅니다.

 

스토리지 엔진 정보는 INFORMATION_SCHEMA ENGINES 테이블에서도 사용할 있습니다.

Designed by JB FACTORY