성능 스키마를 사용하여 InnoDB 테이블에 대한 ALTER TABLE 진행 상황을 모니터링 할 수 있습니다. ALTER TABLE의 여러 단계를 나타내는 7개의 스테이지 이벤트가 있습니다. 각 단계 이벤트는 다른 단계를 통해 진행될 때 전체 ALTER TABLE 작업에 대해 WORK_COMPLETED 및 WORK_ESTIMATED의 누계를보고합니다. WORK_ESTIMATED는 ALTER TABLE이 수행하는 모든 작업을 고려하는 공식을 사용하여 계산되며 ALTER TABLE 처리중에 수정될 수 있습니다. WORK_COMPLETED 및 WORK_ESTIMATED 값은 ALTER TABLE에서 수행한 모든 작업의 추상적인 표현입니다. 발생 순서에 따라 ALTER TABLE 단계 이벤트에는 다음이 포함됩니..
■ Replication 테이블 성능 스키마는 복제 정보 상태를 보여주는 테이블을 제공합니다. 이는 SHOW SLAVE STATUS 문에서 사용할 수있는 정보와 비슷하지만 테이블 형식으로 표현하는 것이 더 접근하기 쉽고 사용성 이점이 있습니다. 1. SHOW SLAVE STATUS 출력은 직접 보면서 확인하는 검사에 유용하지만 프로그래밍 사용에는 그다지 유용하지 않습니다. 반대로 성능 스키마 테이블을 사용하면 복잡한 WHERE 조건, 조인 등을 포함한 일반 SELECT 쿼리를 사용하여 복제본 상태에 대한 정보를 검색할 수 있습니다. 2. 쿼리 결과는 추가 분석을 위해 테이블에 저장하거나 변수에 할당하여 저장 프로 시저에서 사용할 수 있습니다. 3. 복제 테이블은 더 나은 진단 정보를 제공합니다. 다중 스..
■ Summary(요약) 테이블 ▶︎ objects_summary_global_by_type 테이블 성능 스키마는 개체 대기 이벤트를 집계하기 위해 objects_summary_global_by_type 테이블을 유지합니다. 예제 개체 대기 이벤트 요약 정보 : mysql> SELECT * FROM performance_schema.objects_summary_global_by_type\G ... *************************** 3. row *************************** OBJECT_TYPE: TABLE OBJECT_SCHEMA: test OBJECT_NAME: t COUNT_STAR: 3 SUM_TIMER_WAIT: 263126976 MIN_TIMER_WAIT: 1..
■ User-Defined Variable 테이블 Performance Schema는 사용자 정의 변수를 노출하는 user_variables_by_thread 테이블을 제공합니다. 이들은 특정 세션 내에서 정의된 변수이며 이름 앞에 @문자를 포함합니다. user_variables_by_thread 테이블에는 다음 컬럼이 있습니다. - THREAD_ID 변수가 정의된 세션의 스레드 식별자입니다. - VARIABLE_NAME 선행 @문자가 없는 변수 이름입니다. - VARIABLE_VALUE 변수 값입니다. user_variables_by_thread 테이블에는 TRUNCATE TABLE이 허용되지 않습니다. ■ System Variable 테이블 MySQL 서버는 구성 방법을 나타내는 많은 시스템 변수를 ..
■ Connection 테이블 클라이언트가 MySQL 서버에 연결하면 특정 사용자 이름과 특정 호스트에서 연결됩니다. Performance Schema는 이러한 연결에 대한 통계를 제공하고 다음 테이블을 사용하여 계정 (사용자 및 호스트 조합) 및 사용자 이름 및 호스트 이름별로 개별적으로 추적합니다. accounts : 클라이언트 계정당 연결 통계 hosts : 클라이언트 호스트 이름당 연결 통계 users : 클라이언트 사용자 이름별 연결 통계 연결 테이블에서 계정의 의미는 사용자 및 호스트 값의 조합을 의미한다는 점에서 mysql시스템 데이터베이스의 MySQL grant tables(권한부여 테이블)에서의 의미와 유사합니다. grant tables의 경우 계정의 호스트 부분이 패턴이 될 수 있는 반..
■ Transaction 테이블 Performance Schema는 트랜잭션을 계측합니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트, 명령문(Statement) 이벤트, 스테이지(Stage) 이벤트와 같은 레벨에 존재합니다. • 설정방법 다음과 같은 계측기가 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다. SELECT * FROM performance_schema.setup_instruments WHERE NAME = 'transaction'; +-------------+---------+-------+ | NAME | ENABLED | TIMED | +-------------+---------+-------+ | transa..
■ Statement Event 테이블 Perofmance Schema 계측기에서 명령문 실행을 보여줍니다. 명령문 이벤트는 이벤트 계층 구조의 높은 레벨에서 발생합니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트, 트랜잭션(Transaction) 이벤트, 명령문(Statement)와 같은 레벨의 이벤트입니다. • 설정방법 다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다. mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'statement/%'; +-------------------------------------------..
■ Stage Event 테이블 Performance Schema 계측기 도구중 단계(Stage)는 명령문 구문 분석, 테이블 열기 또는 파일 정렬 작업 수행과 같은 명령 실행 프로세스를 보여줍니다. 스테이지는 SHOW PROCESSLIST에 의해 표시되거나 INFORMATION_SCHEMA.PROCESSLIST 테이블에 표시되는 스레드 상태에 해당합니다. 상태 값이 변경되면 Stage가 시작되고 끝납니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트,트랜잭션(Transaction) 이벤트, 명령문(Statement) 이벤트와 같은 레벨에 존재합니다. • 설정방법 다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니..
■ Wait Event 테이블 종류 Performance schema에서 대기(waits) 도구는 시간이 걸리는 이벤트를 보여줍니다. 이벤트 계층 구조 내에서, 대기 이벤트는 스테이지(Stage) 이벤트, 명령문(Statement) 이벤트, 트랜잭션(Transaction) 이벤트와 같은 레벨의 이벤트입니다. • 설정방법 mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/%'; +----------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +----------------------------------------+----..
■ Setup Tables setup_actors : 새로운 포그라운드 스레드(foreground threads : 접속 클라이언트 혹은 서버)에 대한 모니터링을 초기화하는 방법 setup_consumers : 이벤트 정보를 보내고 저장할 수 있는 대상 setup_instruments : 이벤트를 수집 할 수있는 계측된 개체의 클래스 setup_objects : 모니터링해야하는 개체 setup_timers : 현재 이벤트 타이머 ■ Instance Tables ▶︎ cond_instances 테이블 : 조건 동기화 개체 인스턴스 cond_instances 테이블은 서버가 실행되는 동안 성능 스키마에 표시되는 모든 조건을 나열합니다. 조건은 특정 이벤트가 발생했음을 알리기 위해 코드에서 사용되는 동기화 메..
■ performance schema 상태 모니터링. 다음과 같은 쿼리로 performance schema의 상태를 확인할 수 있습니다. mysql> SHOW STATUS LIKE 'perf%'; +-----------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------+-------+ | Performance_schema_accounts_lost | 0 | | Performance_schema_cond_classes_lost | 0 | | Performance_schema_cond_instances_lost | 0 | | Performance..
■ Performance Schema 소개 MySQL 성능 스키마는 낮은 수준에서 MySQL 서버 실행을 모니터링하는 기능입니다. 성능 스키마에는 다음과 같은 특성이 있습니다. - 성능 스키마는 런타임에 서버의 내부 실행을 검사하는 방법을 제공합니다. PERFORMANCE_SCHEMA 스토리지 엔진 및 performance_schema 데이터베이스를 사용하여 구현됩니다. 성능 스키마는 주로 성능 데이터에 중점을 둡니다. 이는 메타 데이터 검사에 사용되는 INFORMATION_SCHEMA와 다릅니다. - 성능 스키마는 서버 이벤트를 모니터링합니다. "이벤트"는 시간이 걸리고 타이밍 정보를 수집 할 수 있도록 계측된 서버가 수행하는 모든 작업입니다. 일반적으로 이벤트는 함수 호출, 운영 체제 대기, 구문 분..