MySQL Performance Schema 완벽 가이드 | 실시간 쿼리 모니터링과 성능 분석 (2025 최신판)

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_longSQL 실행 이력슬로우 쿼리 및 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, 메모리 소비량까지 추적이 가능합니다.

MySQL Performance Schema 구조 다이어그램 — 쿼리 실행 흐름, 스레드, 대기 이벤트를 시각화한 데이터베이스 성능 모니터링 인포그래픽

🔍 5.MySQL Performance Schema vs Slow Query Log

항목Performance SchemaSlow 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)”
를 다룰 예정입니다.


📚 5. 참고 링크

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다