MySQL Performance Schema는 MySQL의 쿼리 실행 단계를 실시간으로 분석하는 핵심 기능입니다. 이 가이드에서는 구조, 주요 테이블, Aurora 및 MariaDB 환경의 차이, 그리고 실무 튜닝 전략을 다룹니다.
⚙️ 1. MySQL Performance Schema란?
MySQL Performance Schema는 MySQL 내부에서 쿼리 실행 과정의 세부 데이터를 수집·저장하는 기능입니다.
단순 로그보다 더 세밀하게 스레드, 이벤트, 잠금 대기, CPU 시간 등을 기록하여
쿼리 성능 병목을 정확히 파악할 수 있습니다.
💡 Performance Schema는
information_schema와 달리 “실시간 성능 데이터”를 저장합니다.
🧩 2. MySQL Performance Schema 활성화 설정
Performance Schema는 MySQL 5.6 이상에서 기본적으로 포함되지만,
명시적으로 활성화해야 작동합니다.
SHOW VARIABLES LIKE 'performance_schema';
SET GLOBAL performance_schema = ON;
my.cnf 설정 예시
[mysqld]
performance_schema=ON
performance_schema_instrument='%=ON'
performance_schema_consumer_events_statements_history=ON
💡 Aurora MySQL은 기본적으로 활성화되어 있으며,
MariaDB에서는 일부 이벤트만 지원됩니다 (performance_schema_max_table_instances 옵션 참고).
📊 3. 주요 MySQL Performance Schema 테이블 분석
Performance Schema에는 수백 개의 테이블이 존재하지만,
실무에서 가장 많이 쓰이는 것은 아래 3개입니다.
| 테이블명 | 설명 | 활용 예시 |
|---|---|---|
events_statements_history_long | SQL 실행 이력 | 슬로우 쿼리 및 CPU 사용량 분석 |
threads | 활성 스레드 목록 | 특정 사용자 세션 추적 |
events_waits_summary_global_by_event_name | 자원 대기 통계 | 잠금(Lock) 병목 파악 |
SELECT * FROM performance_schema.events_statements_history_long
WHERE SQL_TEXT LIKE '%SELECT%' LIMIT 5;
🧮 4.MySQL Performance Schema로 실시간 쿼리 분석하기
Performance Schema를 활용하면 슬로우 쿼리 로그 없이도
현재 실행 중인 쿼리의 상태를 즉시 확인할 수 있습니다.
SELECT EVENT_NAME, TIMER_WAIT, SQL_TEXT
FROM performance_schema.events_statements_current;
Aurora MySQL에서는 Performance Insights와 연계되어
실시간 모니터링 대시보드 형태로 시각화됩니다.
📈 Performance Schema는 단일 쿼리의 CPU 사용률, I/O Wait, 메모리 소비량까지 추적이 가능합니다.

🔍 5.MySQL Performance Schema vs Slow Query Log
| 항목 | Performance Schema | Slow Query Log |
|---|---|---|
| 분석 범위 | 전체 쿼리 이벤트 | 느린 쿼리만 |
| 실시간성 | 즉시 조회 가능 | 로그 수집 후 분석 |
| Aurora 통합 | Performance Insights 연계 | 제한적 |
| CPU/Wait 정보 | 포함 | 미포함 |
💡 실시간 모니터링은 Performance Schema,
장기 트렌드 분석은 Slow Query Log로 병행하는 것이 최적입니다.
🧠 6. Aurora / MariaDB 환경의 차이점
- Aurora MySQL
- Performance Schema가 CloudWatch와 자동 연동됩니다.
innodb_buffer_pool_stats테이블과 병합된 모니터링 제공.
- MariaDB
- 일부 Performance Schema 테이블이 Aria/XtraDB로 대체.
performance_schema=ON설정 시 약간의 CPU 오버헤드 발생 가능.
⚡ 7. 실무 Performance Schema 튜닝 전략
- 필요한 Instrument만 활성화 (
%statement/%wait/io중심) performance_schema_digests_size조정으로 SQL 패턴 누락 방지- Aurora에서는 Performance Insights와 병행 → 오버헤드 10% 이하 유지
💡 TIP:
sys스키마와 결합하면 자동화된 뷰(sys.user_summary_by_statement_latency)로 요약 조회 가능.
💬 8. 마무리
Performance Schema는 MySQL 성능 분석의 핵심 도구입니다.
쿼리의 실행 단계별 리소스 소비를 시각적으로 분석할 수 있으며,
Aurora·MariaDB 환경에서도 튜닝 효율을 극대화할 수 있습니다.
👉 다음 글에서는
“MySQL sys 스키마를 이용한 자동 성능 진단 및 보고서 생성 가이드 (2025)”
를 다룰 예정입니다.
답글 남기기