슬로우 쿼리 진단·인덱스 최적화·레플리케이션 지연 해결로 MySQL 문제 결
MySQL을 운영하면서 가장 자주 직면한 문제는 트래픽 증가 시 슬로우 쿼리 급증이었습니다. slow_query_log를 활성화해 지연 쿼리를 수집하고, EXPLAIN으로 실행 계획을 분석해 풀 스캔이 발생하는 지점에 인덱스를 추가하면서 해결했습니다.
인덱스 과도 추가로 쓰기 성능이 저하되는 역효과도 경험했습니다. INSERT가 많은 테이블에 인덱스를 너무 많이 추가하면 쓰기 시 모든 인덱스를 업데이트하는 비용이 커졌습니다. 사용되지 않는 인덱스를 주기적으로 점검해 제거하는 것이 중요하다는 것을 배웠습니다.
레플리케이션 지연 문제도 있었습니다. 읽기를 레플리카로 분산했는데 마스터와 레플리카 간 지연이 발생해 방금 쓴 데이터가 읽기에서 보이지 않는 상황이 생겼습니다. 쓰기 직후 읽기가 필요한 경우는 마스터로 강제 라우팅하는 방식으로 해결했습니다.