학습 포인트

MySQL 진단은 기록을 켠 뒤,
쿼리 문제와 엔진 문제를 나눠서 읽는 것부터 시작합니다.

`slow_query_log`는 어떤 SQL이 느린지 남기고, `SHOW ENGINE INNODB STATUS`는 잠금 대기와 버퍼 압박처럼 엔진 안쪽 상태를 드러냅니다.

설정 ON
slow_query_log = ON
long_query_time = 1s
log_queries_not_using_indexes = ON

이제부터 느린 쿼리인덱스 없이 돈 쿼리가 운영 근거로 남습니다.

운영에서 보이는 증상
먼저 보는 창
왜 여기서 답이 나오는가
특정 SQL이 유난히 느리다

1초 이상 실행되거나 인덱스를 안 탄 쿼리가 의심됩니다.

Slow Query Log

문제 SQL 자체를 바로 확인

어떤 쿼리가 오래 걸렸는지와 인덱스 미사용 여부가 남아서, 튜닝 대상을 SQL 단위로 좁힐 수 있습니다.

잠금 대기나 교착 징후가 보인다

요청은 느린데 SQL만 봐서는 원인이 안 보일 때입니다.

INNODB STATUS

TRANSACTIONS · SEMAPHORES

누가 잠금을 잡고 기다리는지, 내부 대기와 동시성 압박이 어디서 생기는지 엔진 상태로 확인합니다.

읽기 성능이 흔들리고 캐시가 답답하다

디스크 I/O나 메모리 압박까지 함께 의심되는 경우입니다.

INNODB STATUS

BUFFER POOL

버퍼 풀 사용 상태와 플러시 압력을 보면, 단순 SQL 문제가 아니라 저장 엔진 쪽 병목인지 구분할 수 있습니다.

정리: `slow_query_log`는 문제 쿼리의 흔적, `SHOW ENGINE INNODB STATUS`는 그 쿼리가 부딪히는 내부 상태를 보여줍니다.