Real Mysql 8.0 참고
모든엔진은 performance_schema 엔진 사용
디스크에 테이블의 구조만 저정하며 모든 데이터 메모리에 저장함
바이너리 로그에 기록되지 않아서 레플리카 서버로 복제되지 않음
performance_schema=ON
수집할 유저(host, user) 설정
수집할 스키마, 테이블, 트리거 설정
이벤트 종류별 설정
수집할 스레드 설정
이벤트 타입
accounts : 유저(user,host)별 커넥션
host: host별 커넥션
user: user별 커넥션
global_variables : show variable 동일
global_status : show status 동일
variables_by_thread : 스레드별 변수
persisted_variables : set persist로 수정한 변수
variables_info : 변수의 마지막 수정일, 수정한 유저 호스트
user_variables_by_thread: 현재 연결된 세선들에서 생성한 사용자 정의 변수
session_status : 현재 세션에 대한 세션 범위의 상태변수
status_by_thread : 스레드별 상태변수
Transaction: 트랜잭션에 대한 정보
Statement: 실행한 쿼리들의 정보
Stage: 쿼리들의 처리단계에 대한 정보
Wait: 대기하고 있는 이벤트들의 정보
current : 가장 최신 1건
history : 스레드별로 가장 최신 이벤트가 정해진 갯수만큼
history_long: 전체 스레드에 대한 최근 이벤트
show VARIABLES like ''%performance_schema_events_%_size%'';
data_locks: 현재 잠금 중인 정보
data_lock_waits: 잠금으로 대기중인 정보
metadata_locks : get_lock()으로 잠근 정보
table_handles : 테이블 락 정보
clone_status: 현재 또는 마지막으로 실행된 클론 작업에 대한 상태 정보
clone_progress: 현재 또는 마지막으로 실행된 클론 작업에 대한 진행 정보
error_log: 에러 로그 파일 내용
host_cache: 호스트 캐시 정보
performance_schemas: performance_schema에서 사용 가능한 이벤트 타임들과 그 특성에 대한 정보
prosesslist: show processlist;
thread: MYSQL 백그라운드 스레드 및 클라이언트 연결에 대한 포그라운드 스레드에 대한 정보
모네터링 및 과거 이벤트 데이터 보관 설정 여부 확인
tls_channel_status: MYSQL 연결 인터페이스별 TLS 속성 정보
SELECT *
FROM performance_schema.hosts;
SELECT *
FROM sys.memory_global_total;
SELECT *
FROM sys.memory_by_thread_by_current_bytes;
SELECT *
FROM sys.schema_unused_indexes;
SELECT * FROM sys.schema_redundant_indexes;
SELECT * FROM sys.schema_table_statistics;
SELECT * FROM sys.x$statements_with_full_table_scans;
SELECT * FROM sys.statement_analysis order by exec_count desc;
SELECT * FROM sys.x$statement_analysis order by avg_latency desc;
SELECT * FROM sys.x$statements_with_sorting;
SELECT * FROM sys.x$statements_with_temp_tables;
SELECT *
FROM performance_schema.events_stages_current ps_estc
INNER JOIN performance_schema.events_statements_current ps_esmc
ON ps_estc.NESTING_EVENT_ID = ps_esmc.EVENT_ID
WHERE ps_estc.EVENT_NAME LIKE 'stage/innodb/alter%'
SELECT * FROM sys.x$innodb_lock_waits;