
[복쟉복쟉] 비정규화로 6초 쿼리를 105ms로 줄이기
프로젝트의 요구사항과 전반적인 맥락은 여기에 정리해놓았습니다 : 실시간으로 적재되는 데이터와 부모 엔티티 한번에 가져오기 ⚠ 발단 실시간 혼잡도 데이터가 계속해서 쌓이면서 60만개가 넘어가던 상황이었다. 앱을 켜보니 응답이 너무 오래 걸리는 상태가 지속됐고, 나중에는 아예 에러가 터졌다. 스프링의 기본 read timeout(서버의 response time에 대한 제한) 시간은 5초인데, 이를 초과한 것. 직접 쿼리를 날려봤더니... 무려 6초를 넘기고 있었다 혼잡도 데이터는 매일 몇만개씩 쌓여가고 있기 때문에, 정상적인 서비스를 위해선 빠르게 개선해야만 했다. 💡 해결 과정 : 기존 쿼리문 안에서 INDEX 사용 🤔문제 파악 기존의 쿼리에서 가장 문제가 됐던 부분은, 가장 최근의(실시간) 혼잡도를 가져..