ERD 설계 후 인덱스 전략과 실행 계획 분석으로 쿼리 속도 개선 결
데이터 모델링에서 저는 비즈니스 엔티티 간 관계를 ERD로 먼저 시각화하는 방식을 선호합니다. 정규화 수준은 읽기와 쓰기 비율을 고려해 결정하는데, 읽기가 많은 경우 일부 컬럼을 비정규화해 조인을 줄이는 쪽을 선택했습니다.
쿼리 최적화는 EXPLAIN ANALYZE로 실행 계획을 먼저 확인하는 것에서 시작합니다. 순차 스캔이 발생하는 컬럼에 인덱스를 추가하고, 복합 인덱스 순서를 선택도 높은 컬럼 기준으로 조정했습니다. 인턴 때 한 쿼리에서 전체 스캔이 발생해 응답 시간이 2초를 넘겼는데, 인덱스 하나 추가로 120ms 이하로 줄어든 경험이 있습니다.
N+1 문제는 ORM 사용 시 자주 마주쳤습니다. 관계 데이터를 루프에서 개별 조회하는 패턴을 발견하면 JOIN이나 IN 절로 변환했고, 쿼리 수를 줄이는 것이 인덱스 최적화만큼 효과적이라는 것을 직접 확인했습니다.