• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 1. MySQL Cluster 개요
    2. MySQL Cluster 설치
    3. MySQL Cluster 설정
    4. MySQL Cluster 프로그램
    5. MySQL Cluster 관리
    1. MySQL Cluster의 시작 단계 요약
    2. MySQL Cluster 관리 클라이언트 명령
    3. MySQL Cluster의 온라인 백업
    4. MySQL Cluster에서 MySQL 서버의 사용법
    5. MySQL Cluster의 롤링 재시작 실행
    6. MySQL Cluster에서 생성 된 이벤트 보고서
    7. MySQL Cluster 로그 메시지
    8. MySQL Cluster의 단일 사용자 모드
    9. Quick Reference: MySQL Cluster SQL문
    10. ndbinfo MySQL Cluster Information Database
    11. MySQL Cluster 보안 이슈
    12. MySQL Cluster Disk Data 테이블
    13. MySQL Cluster 데이터 노드의 온라인 추가
    14. MySQL Cluster 배포 된 MySQL 권한
    15. NDB API 통계 카운터 및 변수
    6. MySQL Cluster Replication
    7. MySQL Cluster Release Notes
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

18.5.15 NDB API 통계 카운터 및 변수

Ndb 객체에 의해 실행되는 액션과 이러한 개체에 영향을 미치는 작업에 대한 많은 유형의 통계 카운터를 사용할 수 있습니다. 이 같은 조치는 트랜잭션의 시작과 끝 (또는 중지) 기본 키 및 고유 키 작업 테이블 스캔, 범위 스캔 및 가지 치기 스캔, 다양한 작업이 완료 될 때까지 대기하는 동안 차단 된 스레드 NDBCLUSTER 의해 송수신 된 데이터 및 이벤트가 포함됩니다. NDB API를 호출하거나 데이터 노드가 데이터를 전송하거나 수신 할 때마다 NDB 커널 내부의 카운터가 증가됩니다. mysqld는이 카운터가 시스템 상태 변수로 표시됩니다. 이 값은 SHOW STATUS 출력에서 또는 INFORMATION_SCHEMA.SESSION_STATUS 과 INFORMATION_SCHEMA.GLOBAL_STATUS 테이블을 쿼리하여 읽을 수 있습니다. NDB 테이블을 조작하는 문 전후로 값을 비교하면 API 수준에서 수행 된 해당 작업 및 문을 실행 비용을 확인할 수 있습니다.

다음 SHOW STATUS 명령문을 사용하면 이러한 상태 변수를 나열 할 수 있습니다.

mysql> SHOW STATUS LIKE 'ndb_api%';
+--------------------------------------------+----------+
| Variable_name                              | Value    |
+--------------------------------------------+----------+
| Ndb_api_wait_exec_complete_count_session   | 0        |
| Ndb_api_wait_scan_result_count_session     | 0        |
| Ndb_api_wait_meta_request_count_session    | 0        |
| Ndb_api_wait_nanos_count_session           | 0        |
| Ndb_api_bytes_sent_count_session           | 0        |
| Ndb_api_bytes_received_count_session       | 0        |
| Ndb_api_trans_start_count_session          | 0        |
| Ndb_api_trans_commit_count_session         | 0        |
| Ndb_api_trans_abort_count_session          | 0        |
| Ndb_api_trans_close_count_session          | 0        |
| Ndb_api_pk_op_count_session                | 0        |
| Ndb_api_uk_op_count_session                | 0        |
| Ndb_api_table_scan_count_session           | 0        |
| Ndb_api_range_scan_count_session           | 0        |
| Ndb_api_pruned_scan_count_session          | 0        |
| Ndb_api_scan_batch_count_session           | 0        |
| Ndb_api_read_row_count_session             | 0        |
| Ndb_api_trans_local_read_row_count_session | 0        |
| Ndb_api_event_data_count_injector          | 0        |
| Ndb_api_event_nondata_count_injector       | 0        |
| Ndb_api_event_bytes_count_injector         | 0        |
| Ndb_api_wait_exec_complete_count_slave     | 0        |
| Ndb_api_wait_scan_result_count_slave       | 0        |
| Ndb_api_wait_meta_request_count_slave      | 0        |
| Ndb_api_wait_nanos_count_slave             | 0        |
| Ndb_api_bytes_sent_count_slave             | 0        |
| Ndb_api_bytes_received_count_slave         | 0        |
| Ndb_api_trans_start_count_slave            | 0        |
| Ndb_api_trans_commit_count_slave           | 0        |
| Ndb_api_trans_abort_count_slave            | 0        |
| Ndb_api_trans_close_count_slave            | 0        |
| Ndb_api_pk_op_count_slave                  | 0        |
| Ndb_api_uk_op_count_slave                  | 0        |
| Ndb_api_table_scan_count_slave             | 0        |
| Ndb_api_range_scan_count_slave             | 0        |
| Ndb_api_pruned_scan_count_slave            | 0        |
| Ndb_api_scan_batch_count_slave             | 0        |
| Ndb_api_read_row_count_slave               | 0        |
| Ndb_api_trans_local_read_row_count_slave   | 0        |
| Ndb_api_wait_exec_complete_count           | 2        |
| Ndb_api_wait_scan_result_count             | 3        |
| Ndb_api_wait_meta_request_count            | 27       |
| Ndb_api_wait_nanos_count                   | 45612023 |
| Ndb_api_bytes_sent_count                   | 992      |
| Ndb_api_bytes_received_count               | 9640     |
| Ndb_api_trans_start_count                  | 2        |
| Ndb_api_trans_commit_count                 | 1        |
| Ndb_api_trans_abort_count                  | 0        |
| Ndb_api_trans_close_count                  | 2        |
| Ndb_api_pk_op_count                        | 1        |
| Ndb_api_uk_op_count                        | 0        |
| Ndb_api_table_scan_count                   | 1        |
| Ndb_api_range_scan_count                   | 0        |
| Ndb_api_pruned_scan_count                  | 0        |
| Ndb_api_scan_batch_count                   | 0        |
| Ndb_api_read_row_count                     | 1        |
| Ndb_api_trans_local_read_row_count         | 1        |
| Ndb_api_event_data_count                   | 0        |
| Ndb_api_event_nondata_count                | 0        |
| Ndb_api_event_bytes_count                  | 0        |
+--------------------------------------------+----------+
60 rows in set (0.02 sec)

이러한 상태 변수는 다음과 같이 INFORMATION_SCHEMA 데이터베이스 SESSION_STATUS 및 GLOBAL_STATUS 테이블에서 사용할 수 있습니다.

mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS 
    ->   WHERE VARIABLE_NAME LIKE 'ndb_api%';
+--------------------------------------------+----------------+
| VARIABLE_NAME                              | VARIABLE_VALUE |
+--------------------------------------------+----------------+
| NDB_API_WAIT_EXEC_COMPLETE_COUNT_SESSION   | 2              |
| NDB_API_WAIT_SCAN_RESULT_COUNT_SESSION     | 0              |
| NDB_API_WAIT_META_REQUEST_COUNT_SESSION    | 1              |
| NDB_API_WAIT_NANOS_COUNT_SESSION           | 8144375        |
| NDB_API_BYTES_SENT_COUNT_SESSION           | 68             |
| NDB_API_BYTES_RECEIVED_COUNT_SESSION       | 84             |
| NDB_API_TRANS_START_COUNT_SESSION          | 1              |
| NDB_API_TRANS_COMMIT_COUNT_SESSION         | 1              |
| NDB_API_TRANS_ABORT_COUNT_SESSION          | 0              |
| NDB_API_TRANS_CLOSE_COUNT_SESSION          | 1              |
| NDB_API_PK_OP_COUNT_SESSION                | 1              |
| NDB_API_UK_OP_COUNT_SESSION                | 0              |
| NDB_API_TABLE_SCAN_COUNT_SESSION           | 0              |
| NDB_API_RANGE_SCAN_COUNT_SESSION           | 0              |
| NDB_API_PRUNED_SCAN_COUNT_SESSION          | 0              |
| NDB_API_SCAN_BATCH_COUNT_SESSION           | 0              |
| NDB_API_READ_ROW_COUNT_SESSION             | 1              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SESSION | 1              |
| NDB_API_EVENT_DATA_COUNT_INJECTOR          | 0              |
| NDB_API_EVENT_NONDATA_COUNT_INJECTOR       | 0              |
| NDB_API_EVENT_BYTES_COUNT_INJECTOR         | 0              |
| NDB_API_WAIT_EXEC_COMPLETE_COUNT_SLAVE     | 0              |
| NDB_API_WAIT_SCAN_RESULT_COUNT_SLAVE       | 0              |
| NDB_API_WAIT_META_REQUEST_COUNT_SLAVE      | 0              |
| NDB_API_WAIT_NANOS_COUNT_SLAVE             | 0              |
| NDB_API_BYTES_SENT_COUNT_SLAVE             | 0              |
| NDB_API_BYTES_RECEIVED_COUNT_SLAVE         | 0              |
| NDB_API_TRANS_START_COUNT_SLAVE            | 0              |
| NDB_API_TRANS_COMMIT_COUNT_SLAVE           | 0              |
| NDB_API_TRANS_ABORT_COUNT_SLAVE            | 0              |
| NDB_API_TRANS_CLOSE_COUNT_SLAVE            | 0              |
| NDB_API_PK_OP_COUNT_SLAVE                  | 0              |
| NDB_API_UK_OP_COUNT_SLAVE                  | 0              |
| NDB_API_TABLE_SCAN_COUNT_SLAVE             | 0              |
| NDB_API_RANGE_SCAN_COUNT_SLAVE             | 0              |
| NDB_API_PRUNED_SCAN_COUNT_SLAVE            | 0              |
| NDB_API_SCAN_BATCH_COUNT_SLAVE             | 0              |
| NDB_API_READ_ROW_COUNT_SLAVE               | 0              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SLAVE   | 0              |
| NDB_API_WAIT_EXEC_COMPLETE_COUNT           | 4              |
| NDB_API_WAIT_SCAN_RESULT_COUNT             | 3              |
| NDB_API_WAIT_META_REQUEST_COUNT            | 28             |
| NDB_API_WAIT_NANOS_COUNT                   | 53756398       |
| NDB_API_BYTES_SENT_COUNT                   | 1060           |
| NDB_API_BYTES_RECEIVED_COUNT               | 9724           |
| NDB_API_TRANS_START_COUNT                  | 3              |
| NDB_API_TRANS_COMMIT_COUNT                 | 2              |
| NDB_API_TRANS_ABORT_COUNT                  | 0              |
| NDB_API_TRANS_CLOSE_COUNT                  | 3              |
| NDB_API_PK_OP_COUNT                        | 2              |
| NDB_API_UK_OP_COUNT                        | 0              |
| NDB_API_TABLE_SCAN_COUNT                   | 1              |
| NDB_API_RANGE_SCAN_COUNT                   | 0              |
| NDB_API_PRUNED_SCAN_COUNT                  | 0              |
| NDB_API_SCAN_BATCH_COUNT                   | 0              |
| NDB_API_READ_ROW_COUNT                     | 2              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT         | 2              |
| NDB_API_EVENT_DATA_COUNT                   | 0              |
| NDB_API_EVENT_NONDATA_COUNT                | 0              |
| NDB_API_EVENT_BYTES_COUNT                  | 0              |
+--------------------------------------------+----------------+
60 rows in set (0.00 sec)

mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS 
    ->     WHERE VARIABLE_NAME LIKE 'ndb_api%';
+--------------------------------------------+----------------+
| VARIABLE_NAME                              | VARIABLE_VALUE |
+--------------------------------------------+----------------+
| NDB_API_WAIT_EXEC_COMPLETE_COUNT_SESSION   | 2              |
| NDB_API_WAIT_SCAN_RESULT_COUNT_SESSION     | 0              |
| NDB_API_WAIT_META_REQUEST_COUNT_SESSION    | 1              |
| NDB_API_WAIT_NANOS_COUNT_SESSION           | 8144375        |
| NDB_API_BYTES_SENT_COUNT_SESSION           | 68             |
| NDB_API_BYTES_RECEIVED_COUNT_SESSION       | 84             |
| NDB_API_TRANS_START_COUNT_SESSION          | 1              |
| NDB_API_TRANS_COMMIT_COUNT_SESSION         | 1              |
| NDB_API_TRANS_ABORT_COUNT_SESSION          | 0              |
| NDB_API_TRANS_CLOSE_COUNT_SESSION          | 1              |
| NDB_API_PK_OP_COUNT_SESSION                | 1              |
| NDB_API_UK_OP_COUNT_SESSION                | 0              |
| NDB_API_TABLE_SCAN_COUNT_SESSION           | 0              |
| NDB_API_RANGE_SCAN_COUNT_SESSION           | 0              |
| NDB_API_PRUNED_SCAN_COUNT_SESSION          | 0              |
| NDB_API_SCAN_BATCH_COUNT_SESSION           | 0              |
| NDB_API_READ_ROW_COUNT_SESSION             | 1              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SESSION | 1              |
| NDB_API_EVENT_DATA_COUNT_INJECTOR          | 0              |
| NDB_API_EVENT_NONDATA_COUNT_INJECTOR       | 0              |
| NDB_API_EVENT_BYTES_COUNT_INJECTOR         | 0              |
| NDB_API_WAIT_EXEC_COMPLETE_COUNT_SLAVE     | 0              |
| NDB_API_WAIT_SCAN_RESULT_COUNT_SLAVE       | 0              |
| NDB_API_WAIT_META_REQUEST_COUNT_SLAVE      | 0              |
| NDB_API_WAIT_NANOS_COUNT_SLAVE             | 0              |
| NDB_API_BYTES_SENT_COUNT_SLAVE             | 0              |
| NDB_API_BYTES_RECEIVED_COUNT_SLAVE         | 0              |
| NDB_API_TRANS_START_COUNT_SLAVE            | 0              |
| NDB_API_TRANS_COMMIT_COUNT_SLAVE           | 0              |
| NDB_API_TRANS_ABORT_COUNT_SLAVE            | 0              |
| NDB_API_TRANS_CLOSE_COUNT_SLAVE            | 0              |
| NDB_API_PK_OP_COUNT_SLAVE                  | 0              |
| NDB_API_UK_OP_COUNT_SLAVE                  | 0              |
| NDB_API_TABLE_SCAN_COUNT_SLAVE             | 0              |
| NDB_API_RANGE_SCAN_COUNT_SLAVE             | 0              |
| NDB_API_PRUNED_SCAN_COUNT_SLAVE            | 0              |
| NDB_API_SCAN_BATCH_COUNT_SLAVE             | 0              |
| NDB_API_READ_ROW_COUNT_SLAVE               | 0              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SLAVE   | 0              |
| NDB_API_WAIT_EXEC_COMPLETE_COUNT           | 4              |
| NDB_API_WAIT_SCAN_RESULT_COUNT             | 3              |
| NDB_API_WAIT_META_REQUEST_COUNT            | 28             |
| NDB_API_WAIT_NANOS_COUNT                   | 53756398       |
| NDB_API_BYTES_SENT_COUNT                   | 1060           |
| NDB_API_BYTES_RECEIVED_COUNT               | 9724           |
| NDB_API_TRANS_START_COUNT                  | 3              |
| NDB_API_TRANS_COMMIT_COUNT                 | 2              |
| NDB_API_TRANS_ABORT_COUNT                  | 0              |
| NDB_API_TRANS_CLOSE_COUNT                  | 3              |
| NDB_API_PK_OP_COUNT                        | 2              |
| NDB_API_UK_OP_COUNT                        | 0              |
| NDB_API_TABLE_SCAN_COUNT                   | 1              |
| NDB_API_RANGE_SCAN_COUNT                   | 0              |
| NDB_API_PRUNED_SCAN_COUNT                  | 0              |
| NDB_API_SCAN_BATCH_COUNT                   | 0              |
| NDB_API_READ_ROW_COUNT                     | 2              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT         | 2              |
| NDB_API_EVENT_DATA_COUNT                   | 0              |
| NDB_API_EVENT_NONDATA_COUNT                | 0              |
| NDB_API_EVENT_BYTES_COUNT                  | 0              |
+--------------------------------------------+----------------+
60 rows in set (0.00 sec)

각 Ndb 개체는 각각 자신의 카운터를 가지고 있습니다. NDB API 응용 프로그램은 최적화 및 모니터링에 사용하기 위해 카운터 값을 읽을 수 있습니다. 동시에 여러 Ndb 개체를 사용하는 다중 스레드 클라이언트의 경우 특정 Ndb_cluster_connection 에 속하는 모든 Ndb 개체에서 카운터 집계 뷰를 얻을 수 있습니다.

4 세트의 카운터가 표시됩니다. 1 세트는 현재 세션에만 적용됩니다. 기타 3 세트는 글로벌입니다. 이것은 mysql 클라이언트에서는 이러한 값을 세션과 글로벌의 두 상태 변수로 얻을 수에 관계 없습니다. 즉, SHOW STATUS 를 사용하여 SESSION 또는 GLOBAL 키워드를 지정하면, NDB API 통계의 상태 변수로보고되는 값은 영향을받지 않고 SESSION_STATUS 과 GLOBAL_STATUS 테이블의 두 동등한 컬럼에서 값을 가져옵니다 있는지에 관계없이 이러한 각 변수의 값은 동일합니다.

  • 세션 카운터 (세션 별)

    세션 카운터는 현재 세션에서 (만) 사용되는 Ndb 객체에 관련합니다. 이러한 오브젝트를 다른 MySQL 클라이언트를 사용하더라도 이러한 카운터는 영향을받지 않습니다.

    표준 MySQL 세션 변수와 혼동을 최소화하기 위해 이러한 NDB API 세션에 대응하는 변수는 앞에 밑줄있는 " _session 변수 "라고 부르고 있습니다.

  • 슬레이브 카운터 (글로벌)

    이 카운터 세트는 리플리케이션 슬레이브 SQL 쓰레드 (존재하는 경우)에 사용되는 Ndb 객체에 관련합니다. 이 mysqld가 리플리케이션 작동하지 않거나 NDB 테이블을 사용하지 않는 경우 이러한 계산은 모두 0입니다.

    관련 상태 변수 (앞에 밑줄있는) " _slave 변수 "라고 부르고 있습니다.

  • 인젝터 카운터 (글로벌)

    인젝터 카운터는 바이너리 로그 인젝터 스레드가 클러스터 이벤트를 수신하는 데 사용하는 Ndb 객체에 관련합니다. 바이너리 로그를 기록 않을 때에도, MySQL Cluster에 연결된 mysqld 프로세스는 스키마의 변경 등의 일부 이벤트를 대기하고 있습니다.

    NDB API 인젝터 카운터에 대응하는 상태 변수 (앞에 밑줄있는) " _injector 변수 "라고 부르고 있습니다.

  • 서버 (글로벌) 카운터 (글로벌)

    이 카운터 세트는이 mysqld에 의해 현재 사용되는 모든 Ndb 객체에 관련합니다. 여기에는 모든 MySQL 클라이언트 응용 프로그램 슬레이브 SQL 쓰레드 (존재하는 경우) binlog 인젝터 및 NDB 유틸리티 스레드가 포함됩니다.

    이러한 카운터에 대응하는 상태 변수는 "전역 변수"또는 "mysqld 수준 변수"라고 부르고 있습니다.

(일반적인 프리픽스 Ndb_api 함께) 변수 이름의 부분 문자열 session , slave 또는 injector 에서 추가로 필터링하여 특정 변수 세트의 값을 얻을 수 있습니다. _session 변수의 경우이를 다음과 같이 실행할 수 있습니다.

mysql> SHOW STATUS LIKE 'ndb_api%session';
+--------------------------------------------+---------+
| Variable_name                              | Value   |
+--------------------------------------------+---------+
| Ndb_api_wait_exec_complete_count_session   | 2       |
| Ndb_api_wait_scan_result_count_session     | 0       |
| Ndb_api_wait_meta_request_count_session    | 1       |
| Ndb_api_wait_nanos_count_session           | 8144375 |
| Ndb_api_bytes_sent_count_session           | 68      |
| Ndb_api_bytes_received_count_session       | 84      |
| Ndb_api_trans_start_count_session          | 1       |
| Ndb_api_trans_commit_count_session         | 1       |
| Ndb_api_trans_abort_count_session          | 0       |
| Ndb_api_trans_close_count_session          | 1       |
| Ndb_api_pk_op_count_session                | 1       |
| Ndb_api_uk_op_count_session                | 0       |
| Ndb_api_table_scan_count_session           | 0       |
| Ndb_api_range_scan_count_session           | 0       |
| Ndb_api_pruned_scan_count_session          | 0       |
| Ndb_api_scan_batch_count_session           | 0       |
| Ndb_api_read_row_count_session             | 1       |
| Ndb_api_trans_local_read_row_count_session | 1       |
+--------------------------------------------+---------+
18 rows in set (0.50 sec)

NDB API mysqld 수준의 상태 변수의 목록을 얻으려면 다음과 같이 ndb_api 에서 시작 _count 로 끝나는 변수 이름으로 필터링합니다.

mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS 
    ->     WHERE VARIABLE_NAME LIKE 'ndb_api%count';
+------------------------------------+----------------+
| VARIABLE_NAME                      | VARIABLE_VALUE |
+------------------------------------+----------------+
| NDB_API_WAIT_EXEC_COMPLETE_COUNT   | 4              |
| NDB_API_WAIT_SCAN_RESULT_COUNT     | 3              |
| NDB_API_WAIT_META_REQUEST_COUNT    | 28             |
| NDB_API_WAIT_NANOS_COUNT           | 53756398       |
| NDB_API_BYTES_SENT_COUNT           | 1060           |
| NDB_API_BYTES_RECEIVED_COUNT       | 9724           |
| NDB_API_TRANS_START_COUNT          | 3              |
| NDB_API_TRANS_COMMIT_COUNT         | 2              |
| NDB_API_TRANS_ABORT_COUNT          | 0              |
| NDB_API_TRANS_CLOSE_COUNT          | 3              |
| NDB_API_PK_OP_COUNT                | 2              |
| NDB_API_UK_OP_COUNT                | 0              |
| NDB_API_TABLE_SCAN_COUNT           | 1              |
| NDB_API_RANGE_SCAN_COUNT           | 0              |
| NDB_API_PRUNED_SCAN_COUNT          | 0              |
| NDB_API_SCAN_BATCH_COUNT           | 0              |
| NDB_API_READ_ROW_COUNT             | 2              |
| NDB_API_TRANS_LOCAL_READ_ROW_COUNT | 2              |
| NDB_API_EVENT_DATA_COUNT           | 0              |
| NDB_API_EVENT_NONDATA_COUNT        | 0              |
| NDB_API_EVENT_BYTES_COUNT          | 0              |
+------------------------------------+----------------+
21 rows in set (0.09 sec)

4 세트 모든 상태 변수에 모든 카운터가 반영되는 것은 아닙니다. 이벤트 카운터 DataEventsRecvdCount , NondataEventsRecvdCount 및 EventBytesRecvdCount 의 경우 _injector 와 mysqld 수준의 NDB API 상태 변수 만 사용할 수 있습니다.

mysql> SHOW STATUS LIKE 'ndb_api%event%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| Ndb_api_event_data_count_injector    | 0     |
| Ndb_api_event_nondata_count_injector | 0     |
| Ndb_api_event_bytes_count_injector   | 0     |
| Ndb_api_event_data_count             | 0     |
| Ndb_api_event_nondata_count          | 0     |
| Ndb_api_event_bytes_count            | 0     |
+--------------------------------------+-------+
6 rows in set (0.00 sec)

다음과 같이 다른 NDB API 카운터는 _injector 상태 변수가 구현되어 있지 않습니다.

mysql> SHOW STATUS LIKE 'ndb_api%injector%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| Ndb_api_event_data_count_injector    | 0     |
| Ndb_api_event_nondata_count_injector | 0     |
| Ndb_api_event_bytes_count_injector   | 0     |
+--------------------------------------+-------+
3 rows in set (0.00 sec)

상태 변수의 이름은 해당 카운터의 이름에 쉽게 연결할 수 있습니다. 다음 표는 각 NDB API 통계 카운터를 설명 및이 카운터에 대응하는 MySQL 서버 상태 변수의 이름과 함께 나열되어 있습니다.

카운터 이름 설명
Status Variables (by statistic type):
  • Session

  • Slave

  • Injector

  • Server

WaitExecCompleteCount 조작의 실행이 완료 될 때까지 대기하는 동안 스레드가 차단 된 횟수입니다. 모든 execute() 호출과 클라이언트에서 보이지 않는 BLOB 및 자동 증가 조작의 암시 적 실행이 포함됩니다.
  • Ndb_api_wait_exec_complete_count_session

  • Ndb_api_wait_exec_complete_count_slave

  • [none]

  • Ndb_api_wait_exec_complete_count

WaitScanResultCount 추가 결과와 검사가 닫힐 때까지 대기하는 등 검색 기반의 신호를 대기하는 동안 스레드가 차단 된 횟수입니다.
  • Ndb_api_wait_scan_result_count_session

  • Ndb_api_wait_scan_result_count_slave

  • [none]

  • Ndb_api_wait_scan_result_count

WaitMetaRequestCount 메타베이스의 신호를 대기하는 동안 스레드가 차단 된 횟수입니다. 이것은 DDL 조작 또는 신기원이 시작되는 (또는 종료)까지 대기하고있을 때 발생할 수 있습니다.
  • Ndb_api_wait_meta_request_count_session

  • Ndb_api_wait_meta_request_count_slave

  • [none]

  • Ndb_api_wait_meta_request_count

WaitNanosCount 데이터 노드에서 어떤 유형의 신호 대기에 걸린 총 시간 (나노초).
  • Ndb_api_wait_nanos_count_session

  • Ndb_api_wait_nanos_count_slave

  • [none]

  • Ndb_api_wait_nanos_count

BytesSentCount 데이터 노드에 전송 된 데이터 량 (바이트 단위).
  • Ndb_api_bytes_sent_count_session

  • Ndb_api_bytes_sent_count_slave

  • [none]

  • Ndb_api_bytes_sent_count

BytesRecvdCount 데이터 노드로부터 수신 된 데이터 량 (바이트 단위).
  • Ndb_api_bytes_received_count_session

  • Ndb_api_bytes_received_count_slave

  • [none]

  • Ndb_api_bytes_received_count

TransStartCount 시작된 트랜잭션 수입니다.
  • Ndb_api_trans_start_count_session

  • Ndb_api_trans_start_count_slave

  • [none]

  • Ndb_api_trans_start_count

TransCommitCount 커밋 된 트랜잭션의 수입니다.
  • Ndb_api_trans_commit_count_session

  • Ndb_api_trans_commit_count_slave

  • [none]

  • Ndb_api_trans_commit_count

TransAbortCount 중단 된 트랜잭션의 수입니다.
  • Ndb_api_trans_abort_count_session

  • Ndb_api_trans_abort_count_slave

  • [none]

  • Ndb_api_trans_abort_count

TransCloseCount 중단 된 트랜잭션의 수입니다. (이 값은 TransCommitCount 과 TransAbortCount 에게 총보다 클 수 있습니다.)
  • Ndb_api_trans_close_count_session

  • Ndb_api_trans_close_count_slave

  • [none]

  • Ndb_api_trans_close_count

PkOpCount 기본 키에 따라 작업 또는 기본 키를 사용하여 작업의 수입니다. 이 카운트는 BLOB 부분 테이블 조작 암시 적 잠금 해제 조작 자동 증가 조작 및 일반적 MySQL 클라이언트에서 보이는 기본 키 조작이 포함됩니다.
  • Ndb_api_pk_op_count_session

  • Ndb_api_pk_op_count_slave

  • [none]

  • Ndb_api_pk_op_count

UkOpCount 고유 키에 따라 작업 또는 고유 키를 사용하여 작업의 수입니다.
  • Ndb_api_uk_op_count_session

  • Ndb_api_uk_op_count_slave

  • [none]

  • Ndb_api_uk_op_count

TableScanCount 시작 된 테이블 스캔의 수. 여기에는 내부 테이블 스캔이 포함됩니다.
  • Ndb_api_table_scan_count_session

  • Ndb_api_table_scan_count_slave

  • [none]

  • Ndb_api_table_scan_count

RangeScanCount 개시된 범위 스캔의 수.
  • Ndb_api_range_scan_count_session

  • Ndb_api_range_scan_count_slave

  • [none]

  • Ndb_api_range_scan_count

PrunedScanCount 단일 파티션에 정리 된 스캔의 수.
  • Ndb_api_pruned_scan_count_session

  • Ndb_api_pruned_scan_count_slave

  • [none]

  • Ndb_api_pruned_scan_count

ScanBatchCount 수신 된 행의 배치 수. (이 컨텍스트에서 일괄 처리는 단일 조각의 검사 결과 세트입니다.)
  • Ndb_api_scan_batch_count_session

  • Ndb_api_scan_batch_count_slave

  • [none]

  • Ndb_api_scan_batch_count

ReadRowCount 읽은 행의 총 수입니다. 기본 키, 고유 키 또는 스캔 작업을 사용하여 읽은 행이 포함됩니다.
  • Ndb_api_read_row_count_session

  • Ndb_api_read_row_count_slave

  • [none]

  • Ndb_api_read_row_count

TransLocalReadRowCount 트랜잭션이 실행 된 동일한 데이터 노드에서 읽은 행 수.
  • Ndb_api_trans_local_read_row_count_session

  • Ndb_api_trans_local_read_row_count_slave

  • [none]

  • Ndb_api_trans_local_read_row_count

DataEventsRecvdCount 수신 된 행 변경 이벤트의 수.
  • [none]

  • [none]

  • Ndb_api_event_data_count_injector

  • Ndb_api_event_data_count

NondataEventsRecvdCount 수신 된 행 변경 이벤트가 아닌 이벤트의 수.
  • [none]

  • [none]

  • Ndb_api_event_nondata_count_injector

  • Ndb_api_event_nondata_count

EventBytesRecvdCount 수신 된 이벤트의 바이트 수.
  • [none]

  • [none]

  • Ndb_api_event_bytes_count_injector

  • Ndb_api_event_bytes_count

커밋 된 트랜잭션의 모든 계산, 즉 TransCommitCount 카운터의 상태 변수를 확인하려면 다음과 같이 SHOW STATUS 의 결과를 부분 문자열 trans_commit_count 으로 필터링 할 수 있습니다.

mysql> SHOW STATUS LIKE '%trans_commit_count%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| Ndb_api_trans_commit_count_session | 1     |
| Ndb_api_trans_commit_count_slave   | 0     |
| Ndb_api_trans_commit_count         | 2     |
+------------------------------------+-------+
3 rows in set (0.00 sec)

여기에서 현재 mysql 클라이언트 세션에서 하나의 트랜잭션이 커밋 된이 mysqld는 그것이 마지막으로 다시 시작되고 나서 두 트랜잭션이 커밋 된 것을 확인할 수 있습니다.

문을 실행하기 직전과 직후에 해당 _session 상태 변수의 값을 비교하면 특정 SQL 문을 통해 다양한 NDB API 카운터가 얼마나 증가했는지를 확인할 수 있습니다. 이 예에서는 SHOW STATUS 에서 초기 값을 취득한 후, test 데이터베이스에 하나의 컬럼을 가지는 t 라는 NDB 테이블을 만듭니다.

mysql> SHOW STATUS LIKE 'ndb_api%session%';
+--------------------------------------------+--------+
| Variable_name                              | Value  |
+--------------------------------------------+--------+
| Ndb_api_wait_exec_complete_count_session   | 2      |
| Ndb_api_wait_scan_result_count_session     | 0      |
| Ndb_api_wait_meta_request_count_session    | 3      |
| Ndb_api_wait_nanos_count_session           | 820705 |
| Ndb_api_bytes_sent_count_session           | 132    |
| Ndb_api_bytes_received_count_session       | 372    |
| Ndb_api_trans_start_count_session          | 1      |
| Ndb_api_trans_commit_count_session         | 1      |
| Ndb_api_trans_abort_count_session          | 0      |
| Ndb_api_trans_close_count_session          | 1      |
| Ndb_api_pk_op_count_session                | 1      |
| Ndb_api_uk_op_count_session                | 0      |
| Ndb_api_table_scan_count_session           | 0      |
| Ndb_api_range_scan_count_session           | 0      |
| Ndb_api_pruned_scan_count_session          | 0      |
| Ndb_api_scan_batch_count_session           | 0      |
| Ndb_api_read_row_count_session             | 1      |
| Ndb_api_trans_local_read_row_count_session | 1      |
+--------------------------------------------+--------+
18 rows in set (0.00 sec)

mysql> USE test;
Database changed
mysql> CREATE TABLE t (c INT) ENGINE NDBCLUSTER;
Query OK, 0 rows affected (0.85 sec)

이 시점에서 다음 (출력에서 변경된 행을 강조 표시하고 있습니다)처럼 새로운 SHOW STATUS 명령문을 실행하고 변경을 확인할 수 있습니다.

mysql> SHOW STATUS LIKE 'ndb_api%session%';
+--------------------------------------------+-----------+
| Variable_name                              | Value     |
+--------------------------------------------+-----------+
| Ndb_api_wait_exec_complete_count_session   | 8         |
| Ndb_api_wait_scan_result_count_session     | 0         |
| Ndb_api_wait_meta_request_count_session    | 17        |
| Ndb_api_wait_nanos_count_session           | 706871709 |
| Ndb_api_bytes_sent_count_session           | 2376      |
| Ndb_api_bytes_received_count_session       | 3844      |
| Ndb_api_trans_start_count_session          | 4         |
| Ndb_api_trans_commit_count_session         | 4         |
| Ndb_api_trans_abort_count_session          | 0         |
| Ndb_api_trans_close_count_session          | 4         |
| Ndb_api_pk_op_count_session                | 6         |
| Ndb_api_uk_op_count_session                | 0         |
| Ndb_api_table_scan_count_session           | 0         |
| Ndb_api_range_scan_count_session           | 0         |
| Ndb_api_pruned_scan_count_session          | 0         |
| Ndb_api_scan_batch_count_session           | 0         |
| Ndb_api_read_row_count_session             | 2         |
| Ndb_api_trans_local_read_row_count_session | 1         |
+--------------------------------------------+-----------+
18 rows in set (0.00 sec)

마찬가지로 t 에 행을 삽입함으로써 발생한 NDB API 통계 카운터의 변경도 확인할 수 있습니다. 다음과 같이 행을 삽입 한 다음 앞의 예에서 사용 된 것과 동일한 SHOW STATUS 명령문을 실행합니다.

 mysql> INSERT INTO t VALUES (100);
 Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO t VALUES (100);
Query OK, 1 row affected (0.00 sec)

mysql> SHOW STATUS LIKE 'ndb_api%session%';
+--------------------------------------------+-----------+
| Variable_name                              | Value     |
+--------------------------------------------+-----------+
| Ndb_api_wait_exec_complete_count_session   | 11        |
| Ndb_api_wait_scan_result_count_session     | 6         |
| Ndb_api_wait_meta_request_count_session    | 20        |
| Ndb_api_wait_nanos_count_session           | 707370418 |
| Ndb_api_bytes_sent_count_session           | 2724      |
| Ndb_api_bytes_received_count_session       | 4116      |
| Ndb_api_trans_start_count_session          | 7         |
| Ndb_api_trans_commit_count_session         | 6         |
| Ndb_api_trans_abort_count_session          | 0         |
| Ndb_api_trans_close_count_session          | 7         |
| Ndb_api_pk_op_count_session                | 8         |
| Ndb_api_uk_op_count_session                | 0         |
| Ndb_api_table_scan_count_session           | 1         |
| Ndb_api_range_scan_count_session           | 0         |
| Ndb_api_pruned_scan_count_session          | 0         |
| Ndb_api_scan_batch_count_session           | 0         |
| Ndb_api_read_row_count_session             | 3         |
| Ndb_api_trans_local_read_row_count_session | 2         |
+--------------------------------------------+-----------+
18 rows in set (0.00 sec)

이러한 결과에서 몇 가지를 관찰 할 수 있습니다.

  • 명시적인 기본 키없이 t 을 만들었는데 그 때 다섯 개의 기본 키 조작이 실행되었습니다 ( Ndb_api_pk_op_count_session 의 "이전"과 "후"의 값의 차이, 즉 6에서 1을 빼는). 이것은 NDB 스토리지 엔진을 사용하고있는 모든 테이블의 기능이다 숨겨진 기본 키의 생성을 반영하고 있습니다.

  • Ndb_api_wait_nanos_count_session 연속적인 값을 비교하면 CREATE TABLE 문을 구현하고있는 NDB API 조작이 INSERT 에 의해 실행 된 작업 (707370418 - 706871709 = 498709 나노초, 즉 약 0.0005 초)보다 훨씬 긴 시간 (706871709 - 820705 = 706051004 나노초, 즉 약 0.7 초) 데이터 노드로부터 응답을 대기 한 것을 확인할 수 있습니다. mysql 클라이언트에서 이러한 진술에 대해보고 된 실행 시간은 이러한 수치에 느슨하게 관련이 있습니다.

    충분한 (나노초) 시간 분해능을 제공하지 않는 플랫폼에서는 SQL 문이 매우 빠르게 실행 된 위해 WaitNanosCount NDB API 카운터 값의 작은 변화가 Ndb_api_wait_nanos_count_session , Ndb_api_wait_nanos_count_slave 또는 Ndb_api_wait_nanos_count 값으로 나타나지 않는 것 수 있습니다.

  • Ndb_api_read_row_count_session 과 Ndb_api_trans_local_read_row_count_session 값이 증가한 것을 반영하여 INSERT 문에 의해 ReadRowCount 과 TransLocalReadRowCount 모두 NDB API 통계 카운터가 증가되고 있습니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved