• 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
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 1. Performance Schema 빠른 시작
    2. Performance Schema 구성
    1. Performance Schema 빌드 구성
    2. Performance Schema Startup 구성
    3. Performance Schema Runtime 구성
    1. Performance Schema 이벤트 타이밍
    2. Performance Schema 이벤트 필터링
    3. 이벤트 사전 필터링
    4. Naming Instruments or Consumers for Filtering Operations
    5. Determining What Is Instrumented
    3. Performance Schema 쿼리
    4. Performance Schema Instrument Naming Conventions
    5. Performance Schema Status Monitoring
    6. Performance Schema Atom and Molecule Events
    7. Performance Schema Statement Digests
    8. Performance Schema의 일반적인 테이블 특성
    9. Performance Schema 테이블 설명
    10. Performance Schema Option and Variable Reference
    11. Performance Schema Command Options
    12. Performance Schema System Variables
    13. Performance Schema Status Variables
    14. Performance Schema and Plugins
    15. 문제를 진단하기위한 Performance Schema 사용
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

22.2.3.3 이벤트 pre-filtering

pre-filtering Performance Schema에 의해 만들어진 모든 사용자에게 적용되는 글로벌 효과를가집니다. pre-filtering은 이벤트 처리의 생산 또는 소비 단계에 적용 할 수 있습니다.
  • 생산 단계에서 pre-filtering을 구성하려면 여러 테이블을 사용할 수 있습니다.

    • setup_instruments 는 사용 가능한 instruments를 보여줍니다. 이 테이블에서 해제되는 instruments는 다른 생성 관련 설정 테이블의 내용에 관계없이 이벤트를 생성하지 않습니다. 이 테이블에서 사용되는 instruments는 이벤트의 생성이 허용되고 다른 테이블의 내용에 따라 달라집니다.

    • setup_objects Performance Schema가 특정 테이블 개체를 모니터할지 여부를 제어합니다.

    • threads 스레드는 각 서버 스레드에서 모니터링이 활성화되어 있는지 여부를 나타냅니다.

    • setup_actors 는 새로운 포 그라운드 스레드의 초기 모니터링 상태를 결정합니다.

  • consumer 스테이지에서 pre-filtering을 구성하려면 setup_consumers 테이블을 변경합니다. 이를 통해 이벤트 대상이 결정됩니다. setup_consumers 은 이벤트 생성 또는 암시 적으로 영향을 미칩니다. 특정 이벤트가 어떤 대상에 전송되지 않은 (즉 소비되지 않는) 경우 Performance Schema는 그것을 생성하지 않습니다.

이러한 테이블 중 하나의 변경은 setup_actors 를 제외하고 즉시 모니터링에 영향을줍니다. setup_actors 의 변경은 변경 후 생성되는 전경 스레드에만 영향을줍니다.

모니터링 구성을 변경하면 Performance Schema는 기록 테이블을 플래시하지 않습니다. 이미 수집 된 이벤트는 새로운 이벤트로 대체 될 때까지 현재의 이벤트 및 기록 테이블에 남아 있습니다. instruments를 사용하지 않으려면 해당 이벤트가 관심있는 새로운 이벤트로 대체 될 때까지 잠시 기다려야 할 수 있습니다. 또는 TRUNCATE TABLE 을 사용하여 기록 테이블을 비 웁니다.

계측을 변경 한 후 요약 테이블을 버리고 이전에 수집 된 이벤트의 집계 정보를 삭제할 필요가있을 수 있습니다. events_statements_summary_by_digest 을 제외하고 요약 테이블의 TRUNCATE TABLE 의 효과는 요약 컬럼을 0 또는 NULL 로 재설정하여 행을 삭제하는 것은 아닙니다.

다음 섹션에서는 특정 테이블을 사용하여 Performance Schema의 pre-filtering을 제어하는​​ 방법을 설명합니다.

22.2.3.3.1 instrument에 의한 pre-filtering

setup_instruments 테이블은 사용 가능한 instrument를 나열합니다.

mysql> SELECT * FROM setup_instruments;
+------------------------------------------------------------+---------+-------+
| NAME                                                       | ENABLED | TIMED |
+------------------------------------------------------------+---------+-------+
...
| wait/synch/mutex/sql/LOCK_global_read_lock                 | YES     | YES   |
| wait/synch/mutex/sql/LOCK_global_system_variables          | YES     | YES   |
| wait/synch/mutex/sql/LOCK_lock_db                          | YES     | YES   |
| wait/synch/mutex/sql/LOCK_manager                          | YES     | YES   |
...
| wait/synch/rwlock/sql/LOCK_grant                           | YES     | YES   |
| wait/synch/rwlock/sql/LOGGER::LOCK_logger                  | YES     | YES   |
| wait/synch/rwlock/sql/LOCK_sys_init_connect                | YES     | YES   |
| wait/synch/rwlock/sql/LOCK_sys_init_slave                  | YES     | YES   |
...
| wait/io/file/sql/binlog                                    | YES     | YES   |
| wait/io/file/sql/binlog_index                              | YES     | YES   |
| wait/io/file/sql/casetest                                  | YES     | YES   |
| wait/io/file/sql/dbopt                                     | YES     | YES   |
...

instruments를 사용할지 여부를 제어하려면 그 ENABLED 열을 YES 또는 NO 로 설정합니다. 사용 된 instruments의 타이밍 정보를 수집할지 여부를 구성하려면 그 TIMED 값을 YES 또는 NO 로 설정합니다. TIMED 컬럼을 설정하면 섹션 22.2.3.1 "Performance Schema 이벤트 타이밍" 에 설명 된대로 Performance Schema 테이블의 내용에 영향을줍니다.

setup_instruments 테이블에 변경 사항은 즉시 모니터링에 영향을줍니다.

setup_instruments 테이블은 이벤트 생성의 가장 기본적인 제어 형식을 제공합니다. 모니터되는 오브젝트와 스레드의 종류에 따라 이벤트 생성을 더욱 좁힐 수있는 섹션 22.2.3.3 "이벤트 pre-filtering" 에 설명 된대로 다른 테이블을 사용할 수 있습니다.

다음 예제에서는 setup_instruments 테이블에 가능한 작업을 나타냅니다. 다른 pre-filtering 작업과 마찬가지로, 이러한 변화는 모든 사용자에게 영향을줍니다. 이러한 일부 쿼리는 LIKE 연산자와 패턴 매치 instruments 이름을 사용하고 있습니다. instruments를 선택하는 패턴의 지정에 대한 자세한 내용은 섹션 22.2.3.4 "필터링 작업 instruments 또는 consumer의 지정" 을 참조하십시오.

  • 모든  instruments를 해제합니다.

    mysql> UPDATE setup_instruments SET ENABLED = 'NO';
    

    이제 이벤트가 수집되지 않습니다.

  • 모든  instruments를 해제하고이를 현재 비활성화되어있는 인스트르먼트 세트에 추가합니다.

    mysql> UPDATE setup_instruments SET ENABLED = 'NO'
        -> WHERE NAME LIKE 'wait/io/file/%';
    
  • 파일 instruments만 해제하고 다른 모든 instruments를 사용합니다.

    mysql> UPDATE setup_instruments
        -> SET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');
    
  • mysys 라이브러리의 instruments를 제외한 모든 instruments를 사용합니다.

    mysql> UPDATE setup_instruments
        -> SET ENABLED = CASE WHEN NAME LIKE '%/mysys/%' THEN 'YES' ELSE 'NO' END;
    
  • 특정 instruments를 해제합니다.

    mysql> UPDATE setup_instruments SET ENABLED = 'NO'
        -> WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
    
  • instruments의 상태를 전환하려면 그 ENABLED 값을 '전환'합니다.

    mysql> UPDATE setup_instruments
        -> SET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES')
        -> WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
    
  • 모든 이벤트의 타이밍을 해제합니다.

    mysql> UPDATE setup_instruments SET TIMED = 'NO';
    
22.2.3.3.2 개체 의한 pre-filtering

setup_objects 테이블은 Performance Schema가 특정 테이블 개체를 모니터할지 여부를 제어합니다. 초기 setup_objects 의 내용은 다음과 같습니다.

mysql> SELECT * FROM setup_objects;
+-------------+--------------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA      | OBJECT_NAME | ENABLED | TIMED |
+-------------+--------------------+-------------+---------+-------+
| TABLE       | mysql              | %           | NO      | NO    |
| TABLE       | performance_schema | %           | NO      | NO    |
| TABLE       | information_schema | %           | NO      | NO    |
| TABLE       | %                  | %           | YES     | YES   |
+-------------+--------------------+-------------+---------+-------+

setup_objects 테이블에 변경 사항은 즉시 개체 모니터링에 영향을줍니다.

OBJECT_TYPE 컬럼은 행이 적용되는 개체 유형을 나타냅니다. TABLE 필터링은 테이블 I / O 이벤트 ( wait/io/table/sql/handler instruments) 및 테이블 잠금 이벤트 ( wait/lock/table/sql/handler instruments)에 영향을줍니다.

OBJECT_SCHEMA 및 OBJECT_NAME 열에는 리터럴의 스키마 또는 테이블 이름 또는 이름과 일치하는 '%' 가 포함되어 있어야합니다.

ENABLED 컬럼은 일치하는 개체가 모니터되고 있는지를 보여주고 TIMED 은 타이밍 정보를 수집할지 여부를 나타냅니다.

기본 객체 구성의 효과는 mysql , INFORMATION_SCHEMA 및 performance_schema 데이터베이스의 테이블을 제외한 모든 테이블을 인스트르먼트하는 것입니다. ( INFORMATION_SCHEMA 데이터베이스의 테이블은 setup_objects 의 내용에 관계없이 instruments되지 않고 information_schema.% 줄은 단순히이 기본을 명시합니다.)

Performance Schema는 setup_objects 의 일치를 확인하려면 먼저보다 상세한 일치를 찾으려고합니다. 예를 들어, 테이블 db1.t1 에서는 'db1' 과 't1' 다음 'db1' 와 '%' 다음 '%' 와 '%' 의 일치를 검색합니다. 다양한 일치하는 setup_objects 행은 다양한 ENABLED 값과 TIMED 값을 가질 수 있기 때문에 일치가 발생하는 순서가 중요합니다.

테이블 관련 이벤트의 경우, Performance Schema는 setup_objects 의 내용과 setup_instruments 을 결합하여 instruments를 사용할지 여부 및 활성화되어있는 인스트르먼트의 시간을 측정할지 여부를 결정합니다.

  • setup_objects 의 행에 일치하는 테이블은 테이블 instruments는 setup_instruments 과 setup_objects 모두에서 ENABLED 이 YES 인 경우에만 이벤트를 생성합니다.

  • 두 값이 YES 의 경우에만 타이밍 정보가 수집되도록 두 테이블의 TIMED 값이 결합됩니다.

setup_objects 에는 db1 , db2 및 db3 에 적용되는 다음 줄이 포함된다고합니다.

+-------------+---------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+---------------+-------------+---------+-------+
| TABLE       | db1           | t1          | YES     | YES   |
| TABLE       | db1           | t2          | NO      | NO    |
| TABLE       | db2           | %           | YES     | YES   |
| TABLE       | db3           | %           | NO      | NO    |
| TABLE       | %             | %           | YES     | YES   |
+-------------+---------------+-------------+---------+-------+

setup_instruments 테이블 관련 instruments에 NO 의 ENABLED 값이있는 경우, 객체의 이벤트는 모니터되지 않습니다. ENABLED 값이 YES 이면 이벤트 모니터링 관련 setup_objects 행의 ENABLED 값에 따라 이루어집니다.

  • db1.t1 이벤트는 모니터됩니다

  • db1.t2 이벤트는 모니터되지 않습니다

  • db2.t3 이벤트는 모니터됩니다

  • db3.t4 이벤트는 모니터되지 않습니다

  • db4.t5 이벤트는 모니터됩니다

setup_instruments 및 setup_objects 테이블의 TIMED 컬럼을 조합하여 이벤트 타이밍 정보를 수집할지 여부를 결정하는 경우에도 같은 논리가 적용됩니다.

영구 테이블과 임시 테이블이 같은 이름을 가지는 경우, setup_objects 행의 조합이 모두에 대해 동일하게 이루어집니다. 한 테이블의 모니터링을 활성화하고 다른 쪽을 사용하지 않을 수 없습니다. 그러나 각 테이블은 개별 instruments됩니다.

ENABLED 컬럼은 MySQL 5.6.3에서 추가되었습니다. ENABLED 열이없는 초기 버전에서는 setup_objects 은 테이블의 일부 행에 일치하는 객체의 모니터링을 활성화하는 데에만 사용됩니다. 테이블에 의한 계측을 명시 적으로 해제하는 방법은 없습니다.

22.2.3.3.3 스레드에 의한 pre-filtering

threads 테이블은 각 서버 스레드의 행을 포함합니다. 각 행은 스레드에 대한 정보를 저장하고 이에 대한 모니터링이 활성화되어 있는지 여부를 나타냅니다. 스레드를 모니터 Performance Schema의 경우 이러한 것이 적용해야합니다.

  • setup_consumers 테이블의 thread_instrumentation consumer는 YES 이어야합니다.

  • thread.INSTRUMENTED 컬럼은 YES 이어야합니다.

  • setup_instruments 테이블에서 사용되는 instruments에서 생성 된 스레드 이벤트에 대해서만 모니터링이 이루어집니다.

threads 테이블 INSTRUMENTED 컬럼은 각 스레드의 모니터링 상태를 나타냅니다. 포 그라운드 스레드 (클라이언트 연결의 결과)는 초기 INSTRUMENTED 값은 스레드에 연결된 사용자 계정이 setup_actors 테이블 중 하나의 행에 일치하는 여부에 따라 결정됩니다. 백그라운드 스레드의 경우 INSTRUMENTED 은 기본적으로 YES 백그라운드 스레드에 연결된 사용자는 않기 때문에 setup_actors 는 참조되지 않습니다. 어느 thread에서도 스레드의 유효 기간 동안 그 INSTRUMENTED 값이 변경 될 수 있습니다.

초기 setup_actors 의 내용은 다음과 같습니다.

mysql> SELECT * FROM setup_actors;
+------+------+------+
| HOST | USER | ROLE |
+------+------+------+
| %    | %    | %    |
+------+------+------+

Performance Schema는 HOST 및 USER 컬럼을 사용하여 새로운 각 포 그라운드 스레드와 일치합니다. ( ROLE 는 사용되지 않습니다.) 중 하나의 행이 일치하는 경우 스레드 INSTRUMENTED 값은 YES 입니다, 그렇지 않으면 NO 입니다. 이렇게하면 호스트, 사용자 또는 호스트와 사용자 조합에 대해 instruments가 선택하여 적용됩니다.

HOST 및 USER 컬럼은 리터럴 호스트 또는 아이디 또는 임의의 이름과 일치하는 '%' 가 포함되어 있어야합니다. setup_actors 테이블에는 먼저 HOST 와 USER 모두에 '%' 를 포함한 행이 저장되기 때문에 기본적으로 모니터링은 모든 새로운 포 그라운드 스레드에 활성화됩니다. 일부 전경 스레드에만 모니터링을 활성화하는 등 제한된 조합을 실행하려면이 행은 하나의 연결에 일치하기 때문에이를 제거해야합니다.

다음과 같이 setup_actors 을 변경합니다.

TRUNCATE TABLE setup_actors;

현재 setup_actors 는 비어 있기 때문에 들어오는 연결에 일치 할 가능성이있는 행은 없습니다. 따라서 Performance Schema는 새로운 모든 전경 스레드의 INSTRUMENTED 컬럼을 NO 로 설정합니다.

또한 setup_actors 을 변경합니다.

INSERT INTO setup_actors (HOST,USER,ROLE) VALUES('localhost','joe','%');
INSERT INTO setup_actors (HOST,USER,ROLE) VALUES('%','sam','%');

여기에서 Performance Schema는 다음과 같이 새로운 연결 스레드 INSTRUMENTED 값 설정 방법을 결정합니다.

  • joe 가 로컬 호스트에서 연결하면 연결은 처음에 삽입 된 행과 일치합니다.

  • joe 가 다른 모든 호스트에서 연결하는 경우 일치하지 않습니다.

  • sam 가 모든 호스트로부터 연결하면 연결은 두 번째에 삽입 된 행과 일치합니다.

  • 다른 모든 연결의 경우 일치하지 않습니다.

setup_actors 테이블에 대한 변경은 기존의 스레드에 영향을주지 않습니다.

22.2.3.3.4 consumer에 의한 pre-filtering

setup_consumers 테이블은 사용 가능한 consumer의 유형과 어느 것이 활성화되어 있는지를 표시합니다.

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| events_stages_current          | NO      |
| events_stages_history          | NO      |
| events_stages_history_long     | NO      |
| events_statements_current      | YES     |
| events_statements_history      | NO      |
| events_statements_history_long | NO      |
| events_waits_current           | NO      |
| events_waits_history           | NO      |
| events_waits_history_long      | NO      |
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| statements_digest              | YES     |
+--------------------------------+---------+

consumer 스테이지에서 pre-filtering에 영향하도록 setup_consumers 테이블을 변경하고 이벤트의 대상을 결정합니다. consumer를 활성화 또는 비활성화하려면 그 ENABLED 값을 YES 또는 NO 로 설정합니다.

setup_consumers 테이블에 변경 사항은 즉시 모니터링에 영향을줍니다.

consumer를 비활성화하면 서버는 consumer 대상의 유지 보수에 시간을 소비하지 않습니다. 예를 들어, 이력 이벤트 정보에 관심이없는 경우 이력 consumer를 해제합니다.

mysql> UPDATE setup_consumers
    -> SET ENABLED = 'NO' WHERE NAME LIKE '%history%';

setup_consumers 테이블의 consumer 설정은 높은 수준에서 낮은 수준까지의 계층을 형성합니다. 다음과 같은 원칙이 적용됩니다.

  • Performance Schema가 consumer를 체크하고 consumer가 활성화되어 있지 않은 한, consumer에 연관된 대상은 이벤트를 수신하지 않습니다.

  • consumer는 그것이 의존하는 모든 consumer (있는 경우)가 활성화 된 경우에만 체크됩니다.

  • consumer가 체크되어 있지 않거나 체크되어 있지만 비활성화되어있는 경우 그에 의존 할 수밖에 consumer는 확인하지 않습니다.

  • 따라 consumer는 스스로 종속 consumer가있을 수 있습니다.

  • 이벤트가 어떤 대상에 전송되지 않은 경우, Performance Schema는 그것을 생성하지 않습니다.

다음 목록에 사용 가능한 consumer 값을 설명합니다. 몇 가지 대표적인 consumer 구성과 그 계측에 대한 효과에 대해서는 섹션 22.2.3.3.5 "consumer 구성의 예" 를 참조하십시오.

Global and Thread Consumers

  • global_instrumentation 최고 수준의 consumer입니다. global_instrumentation 이 NO 의 경우 그것은 글로벌 계측을 해제합니다. 다른 모든 설정은 낮은 수준에서 확인되지 않고 무엇이 설정되어 있는지는 중요하지 않습니다. 글로벌 또는 스레드마다 정보가 유지되지 않고 개별 이벤트가 현재 이벤트 또는 이벤트 기록 테이블에 수집되지 않습니다. global_instrumentation 이 YES 의 경우 Performance Schema는 글로벌 상태 정보를 유지 보수하고 thread_instrumentation consumer도 확인합니다.

  • thread_instrumentation 는 global_instrumentation 이 YES 의 경우에만 체크됩니다. 그렇지 않으면 thread_instrumentation 이 NO 의 경우, thread 고유의 계측이 해제되고 모든 낮은 레벨 설정이 무시됩니다. 스레드마다 정보가 유지되지 않고 개별 이벤트가 현재 이벤트 또는 이벤트 기록 테이블에 수집되지 않습니다. thread_instrumentation 이 YES 의 경우 Performance Schema는 thread 고유의 정보를 유지하고 events_ xxx _current consumer도 확인합니다.

Statements digest consumer

이 consumer는 global_instrumentation 가 YES 이어야하며 그렇지 않으면 그것은 확인하지 않습니다. 문 이벤트 consumer에 대한 종속성이 없기 때문에 events_statements_current 통계를 수집 할 필요없이 다이제스트마다 통계를 얻을 수 있으며, 이것은 오버 헤드 측면에서 유리합니다. 반대로, 다이제스트없이 events_statements_current 에서 자세한 문을 얻을 수 있습니다 ( DIGEST 및 DIGEST_TEXT 컬럼은 NULL 이됩니다).

Wait Event Consumers

이러한 consumer는 global_instrumentation 과 thread_instrumentation 모두가 YES 이어야하며 그렇지 않으면 그들은 확인하지 않습니다. 체크 된 경우, 그들은 다음과 같이 작동합니다.

  • events_waits_current 는 NO 의 경우 events_waits_current 테이블의 개별 대기 이벤트의 수집을 비활성화합니다. YES 의 경우 대기 이벤트 수집을 활성화하고 Performance Schema는 events_waits_history 및 events_waits_history_long consumer를 체크합니다.

  • events_waits_history 는 event_waits_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_waits_history 값은 events_waits_history 테이블에 대기 이벤트의 수집을 활성화 또는 비활성화합니다.

  • events_waits_history_long 는 event_waits_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_waits_history_long 값은 events_waits_history_long 테이블에 대기 이벤트의 수집을 활성화 또는 비활성화합니다.

Stage Event Consumers

이러한 consumer는 global_instrumentation 과 thread_instrumentation 모두가 YES 이어야하며 그렇지 않으면 그들은 확인하지 않습니다. 체크 된 경우, 그들은 다음과 같이 작동합니다.

  • events_stages_current 는 NO 의 경우 events_stages_current 테이블에 각 스테이지 이벤트의 수집을 비활성화합니다. YES 의 경우 스테이지 이벤트 수집을 활성화하고 Performance Schema는 events_stages_history 및 events_stages_history_long consumer를 체크합니다.

  • events_stages_history 는 event_stages_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_stages_history 값은 events_stages_history 테이블에 스테이지 이벤트의 수집을 활성화 또는 비활성화합니다.

  • events_stages_history_long 는 event_stages_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_stages_history_long 값은 events_stages_history_long 테이블에 스테이지 이벤트의 수집을 활성화 또는 비활성화합니다.

Statement Event Consumers

이러한 consumer는 global_instrumentation 과 thread_instrumentation 모두가 YES 이어야하며 그렇지 않으면 그들은 확인하지 않습니다. 체크 된 경우, 그들은 다음과 같이 작동합니다.

  • events_statements_current 는 NO 의 경우 events_statements_current 테이블에 개별 문 이벤트의 수집을 비활성화합니다. YES 의 경우 문 이벤트 수집을 활성화하고 Performance Schema는 events_statements_history 및 events_statements_history_long consumer를 체크합니다.

  • events_statements_history 는 events_statements_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_statements_history 값은 events_statements_history 테이블에 문 이벤트의 수집을 활성화 또는 비활성화합니다.

  • events_statements_history_long 는 events_statements_current 이 NO 의 경우에 체크되지 않습니다. 그렇지 않으면 NO 또는 YES 의 events_statements_history_long 값은 events_statements_history_long 테이블에 문 이벤트의 수집을 활성화 또는 비활성화합니다.

22.2.3.3.5 consumer 구성의 예

setup_consumers 테이블의 consumer 설정은 높은 수준에서 낮은 수준까지의 계층을 형성합니다. 다음의 설명에서는 consumer의 구조를 설명하고 consumer 설정으로서의 효과는 높은 곳에서 낮은 곳으로 점진적 단계에 사용되었을 때 특정 구성과 그 효과를 나타냅니다. 표시된 consumer 값은 대표적인 것입니다. 여기에서 설명하는 일반적 원칙은 사용 가능한 다른 consumer 값에 적용됩니다.

구성의 설명은 기능과 오버 헤드가 증가하는 순서로 보여줍니다. 낮은 수준의 설정을 사용하여 제공되는 정보가 필요하지 않은 경우이를 해제하면 Performance Schema가 사용자를 위해 실행하는 코드가 적어지고, 사용자가 취사 선택하는 정보가 적습니다.

setup_consumers 테이블에는 다음의 값의 계층이 포함됩니다.

global_instrumentation
 thread_instrumentation
   events_waits_current
     events_waits_history
     events_waits_history_long
   events_stages_current
     events_stages_history
     events_stages_history_long
   events_statements_current
     events_statements_history
     events_statements_history_long
 statements_digest
참고

consumer 계층에서 대기 무대 및 문의 consumer는 동일한 수준입니다. 이것은 대기 이벤트 무대 이벤트에 중첩 무대 이벤트가 문 이벤트에 중첩하는 이벤트 중첩 계층과는 다릅니다.

특정 사용자 설정이 NO 의 경우 Performance Schema는 consumer와 관련된 계측을 해제하고 모든 낮은 레벨의 설정을 무시합니다. 특정 설정이 YES 의 경우 Performance Schema는 그것과 관련된 계측을 활성화하고 다음의 최저 수준 설정을 확인합니다. 각 consumer의 규칙에 대한 설명은 섹션 22.2.3.3.4 "consumer에 의한 pre-filtering" 을 참조하십시오.

예를 들어, global_instrumentation 이 활성화되어있는 경우 thread_instrumentation 가 확인됩니다. thread_instrumentation 이 활성화되어있는 경우 events_ xxx _current consumer가 확인됩니다. 이들 중 events_waits_current 이 활성화되어있는 경우 events_waits_history 및 events_waits_history_long 가 확인됩니다.

다음 구성의 각 설명은 Performance Schema를 검사 설정 요소와 그것이 유지하는 출력 테이블 (즉, 그것이 정보를 수집하는 테이블)를 보여줍니다.

No Instrumentation

서버 구성 상태 :

mysql> SELECT * FROM setup_consumers;
+---------------------------+---------+
| NAME                      | ENABLED |
+---------------------------+---------+
| global_instrumentation    | NO      |
...
+---------------------------+---------+

이 구성에서는 아무것도 instruments되지 않습니다.

체크되는 설치 요소 :

  • 테이블 setup_consumers consumer global_instrumentation

유지되는 출력 테이블 :

  • 없음

Global Instrumentation Only

서버 구성 상태 :

mysql> SELECT * FROM setup_consumers;
+---------------------------+---------+
| NAME                      | ENABLED |
+---------------------------+---------+
| global_instrumentation    | YES     |
| thread_instrumentation    | NO      |
...
+---------------------------+---------+

이 구성에서는 계측이 글로벌 상태에서만 유지됩니다. 스레드 당 계측은 비활성화됩니다.

전술 한 구성에 관련하여 확인 된 추가 설치 요소 :

  • 테이블 setup_consumers consumer thread_instrumentation

  • 테이블 setup_instruments

  • 테이블 setup_objects

  • 테이블 setup_timers

전술 한 구성과 관련하여 보수하는 추가 출력 테이블 :

  • mutex_instances

  • rwlock_instances

  • cond_instances

  • file_instances

  • users

  • hosts

  • accounts

  • socket_summary_by_event_name

  • file_summary_by_instance

  • file_summary_by_event_name

  • objects_summary_global_by_type

  • table_lock_waits_summary_by_table

  • table_io_waits_summary_by_index_usage

  • table_io_waits_summary_by_table

  • events_waits_summary_by_instance

  • events_waits_summary_global_by_event_name

  • events_stages_summary_global_by_event_name

  • events_statements_summary_global_by_event_name

Global and Thread Instrumentation Only

서버 구성 상태 :

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| events_waits_current           | NO      |
...
| events_stages_current          | NO      |
...
| events_statements_current      | YES     |
...
+--------------------------------+---------+

이 구성에서는 계측이 글로벌 및 스레드마다 유지됩니다. 현재 이벤트 또는 이벤트 기록 테이블에서 개별 이벤트는 수집하지 않습니다.

전술 한 구성에 관련하여 확인 된 추가 설치 요소 :

  • 테이블 setup_consumers consumer events_ xxx _current . 여기서 xxx 는 waits , stages , statements 입니다

  • 테이블 setup_actors

  • 컬럼 threads.instrumented

전술 한 구성과 관련하여 보수하는 추가 출력 테이블 :

  • events_ xxx _summary_by_ yyy _by_event_name . 여기서 xxx 는 waits , stages , statements 에서와 yyy 는 thread , user , host , account 입니다

Global, Thread, and Current-Event Instrumentation

서버 구성 상태 :

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| events_waits_current           | YES     |
| events_waits_history           | NO      |
| events_waits_history_long      | NO      |
| events_stages_current          | YES     |
| events_stages_history          | NO      |
| events_stages_history_long     | NO      |
| events_statements_current      | YES     |
| events_statements_history      | NO      |
| events_statements_history_long | NO      |
...
+--------------------------------+---------+

이 구성에서는 계측이 글로벌 및 스레드마다 유지됩니다. 개별 이벤트가 현재 이벤트 테이블에 수집됩니다 만, 이벤트 기록 테이블에는 수집하지 않습니다.

전술 한 구성에 관련하여 확인 된 추가 설치 요소 :

  • consumer events_ xxx _history . 여기서 xxx 는 waits , stages , statements 입니다

  • consumer events_ xxx _history_long . 여기서 xxx 는 waits , stages , statements 입니다

전술 한 구성과 관련하여 보수하는 추가 출력 테이블 :

  • events_ xxx _current . 여기서 xxx 는 waits , stages , statements 입니다

Global, Thread, Current-Event, and Event-History instrumentation

events_ xxx _history 및 events_ xxx _history_long consumer는 비활성화되어 있기 때문에 전술 한 구성은 이벤트 기록을 수집하지 않습니다. 그 consumer는 개별적으로 또는 함께 사용하여 스레드마다 세계적으로 또는 둘 다에서 이벤트 기록을 수집 할 수 있습니다.

이 구성은 스레드마다 이벤트를 수집하지만 글로벌은 수집하지 않습니다.

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| events_waits_current           | YES     |
| events_waits_history           | YES     |
| events_waits_history_long      | NO      |
| events_stages_current          | YES     |
| events_stages_history          | YES     |
| events_stages_history_long     | NO      |
| events_statements_current      | YES     |
| events_statements_history      | YES     |
| events_statements_history_long | NO      |
...
+--------------------------------+---------+

이 구성에서 관리되는 이벤트 기록 테이블 :

  • events_ xxx _history . 여기서 xxx 는 waits , stages , statements 입니다

이 구성은 글로벌 이벤트 기록을 수집하지만 각 스레드는 수집하지 않습니다.

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| events_waits_current           | YES     |
| events_waits_history           | NO      |
| events_waits_history_long      | YES     |
| events_stages_current          | YES     |
| events_stages_history          | NO      |
| events_stages_history_long     | YES     |
| events_statements_current      | YES     |
| events_statements_history      | NO      |
| events_statements_history_long | YES     |
...
+--------------------------------+---------+

이 구성에서 관리되는 이벤트 기록 테이블 :

  • events_ xxx _history_long . 여기서 xxx 는 waits , stages , statements 입니다

이 구성은 각 스레드 및 글로벌 이벤트를 수집합니다.

mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| events_waits_current           | YES     |
| events_waits_history           | YES     |
| events_waits_history_long      | YES     |
| events_stages_current          | YES     |
| events_stages_history          | YES     |
| events_stages_history_long     | YES     |
| events_statements_current      | YES     |
| events_statements_history      | YES     |
| events_statements_history_long | YES     |
...
+--------------------------------+---------+

이 구성에서 관리되는 이벤트 기록 테이블 :

  • events_ xxx _history . 여기서 xxx 는 waits , stages , statements 입니다

  • events_ xxx _history_long . 여기서 xxx 는 waits , stages , statements 입니다


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