PostGIS 공간 쿼리 성능 분석

주요 발견점

1. 산점도 + 이동 평균선

샘플링된 응답 시간과 이동 평균선(30개 샘플)을 통해 시간 흐름에 따른 변화 추세를 볼 수 있습니다. PostGIS가 일반 쿼리보다 더 안정적인 응답 시간을 보여줍니다.

2. 박스플롯

각 쿼리 유형의 사분위수 분포와 이상치를 보여줍니다. 중앙값(Q2), 1사분위수(Q1), 3사분위수(Q3), 최소/최대값, 이상치(outlier)를 확인할 수 있습니다.

3. 커널 밀도 추정 (KDE)

응답 시간 분포를 부드러운 곡선으로 표현합니다. 분포의 모양과 집중도를 통해 대부분의 사용자가 경험하는 응답 시간 구간을 확인할 수 있습니다.

4. 응답 시간 구간별 빈도 히트맵

응답 시간을 구간으로 나누어 각 구간의 샘플 빈도를 색상 강도로 표시합니다. 각 쿼리 유형별로 어떤 응답 시간대가 가장 빈번한지 비교할 수 있습니다. 두 쿼리 유형은 동일한 시간 구간을 사용합니다.

5. 백분위수 그래프

각 백분위수(0%, 10%, 20%, ..., 99%)에서의 응답 시간을 보여줍니다. 곡선의 기울기가 급격하게 증가하는 지점은 성능이 악화되는 구간을 의미합니다.

상세 측정 결과

데이터 크기 일반 쿼리 P95 (ms) 95% 신뢰 구간 PostGIS P95 (ms) 95% 신뢰 구간
1,500 19.27 [7.50, 31.05] 16.92 [11.41, 22.43]
15,000 26.16 [18.45, 33.88] 19.71 [14.81, 24.60]
150,000 149.13 [137.02, 161.23] 29.59 [25.72, 33.46]
1,500,000 2094.79 [1999.81, 2189.77] 416.88 [395.37, 438.39]

결론

PostGIS 공간 인덱스는 대용량 데이터셋에서 일반 좌표 인덱스보다 뚜렷한 성능 우위를 보입니다.

특히:

집순 서비스에 PostGIS 공간 쿼리 적용 시, 사용자 50명이 동시에 접속하는 최고 부하 시간대에도 안정적인 성능을 제공할 수 있습니다.