서비스의 이용자나 데이터가 많아지면서 기존에 잘 작동하던 코드들이 느려지고 무거운 쿼리로 변형되거나, 조금씩 변형되었던 기획안으로 테이블 구조들로 인해 잘 작동하던 쿼리들이 느려지는 경우가 자주 발생합니다.

그때마다 저희는 MySQL의 Explain 실행계획을 이용해 쿼리에서 개선할 사항이 있는지를 먼저 체크해보고 있습니다.

초기에는 단순히 서버 스펙을 올려 해결했으나 잘못된 쿼리나 코드들로 손해보는 시간들을 계산해보니 잘못된 접근방법임을 깨닫고 쿼리 튜닝과 로직개선을 시도하게 되었습니다.

스펙을 늘리거나 새로운 신기술 도입하는것보다 평상시에 서비스를 어떻게 개선해야하는지 고민하는 자세가 중요하다는것을 자주 느끼며 일하고 있습니다.