[BE] 쿼리 인덱스 설정 - woowacourse-teams/2023-map-befine GitHub Wiki
최신 토픽 목록 조회
Hibernate:
select
from
topic t1_0
order by
t1_0.last_pin_updated_at desc
- 기준 데이터 : 99000개
| index | Full Scan | (is_deleted) | (last_pin_updated_at) | (is_deleted, last_pin_updated_at) |
|---|---|---|---|---|
| duration | 0.126689s | 0.2327145s | 0.002079s | 0.0021435s |
| cost | 10133 | 5648 | 10133 | 5648 |
- duration과 cost 종합 고려, (is_deleted, last_pin_updated_at)로 선택
full scan
index
(is_deleted)
(last_pin_updated_at)
(is_deleted,last_pin_updated_at)
근처 핀 목록 조회
SELECT
FROM Location
WHERE ST_Contains(ST_Buffer(:coordinate, :distance), l.coordinate.coordinate)
- 공간 인덱스 적용
- 기준 데이터 : 101,813 개
공간 인덱스 적용 전
- 1km 이내 (40건) - 0.20068475
- 3km 이내 (300건) - 0.20049575
공간 인덱스 적용 후
- 1km 이내 (40건) - 0.00388475
- 3km 이내 (300건) - 0.02058175
최소 10배의 성능 향상 확인됨.