• 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 구성
    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 테이블 설명
    1. 성능 스키마 테이블 인덱스
    2. 성능 스키마 설정 테이블
    3. Performance Schema Instance Tables
    1. cond_instances 테이블
    2. file_instances 테이블
    3. mutex_instances 테이블
    4. rwlock_instances 테이블
    5. socket_instances 테이블
    4. Performance Schema Wait Event Tables
    5. Performance Schema Stage Event Tables
    6. Performance Schema Statement Event Tables
    7. Performance Schema 연결 테이블
    8. Performance Schema 연결 속성 테이블
    9. Performance Schema 요약 테이블
    10. 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.9.3.3 mutex_instances 테이블

mutex_instances 테이블은 서버를 실행하는 동안 성능 스키마에 의해 확인되는 모든 상호 배타 락을 나열합니다. 상호 배타 락은 특정 시간에 하나의 스레드가 특정 공통 자원에 액세스 할 수 있도록하는 코드에서 사용되는 동기화 메커니즘입니다. 자원은 상호 배타적 잠금은 "보호되는"라고합니다.

서버에서 실행하는 두 개의 스레드 (예를 들어, 쿼리를 동시에 실행하는 두 사용자 세션)가 동일한 자원 (파일, 버퍼 데이터의 일부)에 액세스 할 필요가있는 경우,이 2 개의 스레드 서로 경쟁하기 위해 상호 배타 락의 잠금을 획득하는 첫 번째 쿼리는 다른 쿼리는 첫 번째 쿼리가 종료 상호 배타적 잠금을 해제 할 때까지 기다려야합니다.

상호 배타 락의 보유 중에 수행되는 작업은 '임계'에 있다고 알려져 다중 쿼리가이 중요한 부분을 연속해서 (한 번에 하나씩) 실행하기 때문에 이것은 잠재적 인 병목 넥입니다.

mutex_instances 테이블에는 이러한 열이 있습니다.

  • NAME

    상호 배타 락에 관련된 instrument 이름.

  • OBJECT_INSTANCE_BEGIN

    instrument 된 상호 배타 락의 메모리 주소.

  • LOCKED_BY_THREAD_ID

    스레드가 현재 상호 배타 락되는 경우 LOCKED_BY_THREAD_ID 는 잠근 스레드 THREAD_ID 되고, 그렇지 않으면 그것은 NULL 입니다.

코드에 instrument 된 각 상호 배타 락에 대해 성능 스키마는 다음 정보를 제공합니다.

  • setup_instruments 테이블은 프리픽스 wait/synch/mutex/ 를 지정하고 계측 지점의 이름을 나열합니다.

  • 일부 코드에서 상호 배타적 잠금이 작성되면 행이 mutex_instances 테이블에 추가됩니다. OBJECT_INSTANCE_BEGIN 컬럼은 상호 배타적 잠금을 고유하게 식별하는 특성입니다.

  • 스레드가 상호 배타적 잠금 잠금을 시도하면 events_waits_current 테이블에 스레드의 행이 표시되고 그것이 상호 배타 락을 대기하고있는 것으로 나타났다 ( EVENT_NAME 열에서) 대기되어있는 상호 배타 락 이 표시됩니다 ( OBJECT_INSTANCE_BEGIN 열에서).

  • 스레드가 상호 배타적 잠금 잠금에 성공했을 경우 :

    • events_waits_current 은 상호 배타적 잠금에 대한 대기가 완료되었음을 나타냅니다 ( TIMER_END 및 TIMER_WAIT 열에서)

    • 완료된 대기 이벤트는 events_waits_history 및 events_waits_history_long 테이블에 추가됩니다.

    • mutex_instances 은 상호 배타적 잠금이 스레드가 소유지게되었음을 나타냅니다 ( THREAD_ID 열에서).

  • 스레드가 상호 배타적 잠금을 해제하면 mutex_instances 은 상호 배타적 잠금 소유자가 없어진 것을 나타냅니다 ( THREAD_ID 컬럼이 NULL 이됩니다).

  • 상호 배타 락 오브젝트가 파기되면 해당 행이 mutex_instances 에서 삭제됩니다.

다음 두 테이블에 대해 쿼리를 실행하여 모니터링 응용 프로그램 또는 DBA는 상호 배타적 잠금을 수반 스레드 간의 병목과 교착 상태를 감지 할 수 있습니다.

  • events_waits_current 스레드가 대기하고있는 상호 배타적 잠금을 확인하는 경우

  • mutex_instances 상호 배타적 잠금을 현재 소유하고있는 다른 thread를 확인하는 경우


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