Skip to content

[BE] 쿼리 인덱스 설정

Doyoung Yoo edited this page Nov 14, 2023 · 6 revisions

최신 토픽 목록 조회

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

full scan

index

(is_deleted)

is_deleted

(last_pin_updated_at)

last_pin_updated_at

(is_deleted,last_pin_updated_at)

both

근처 핀 목록 조회

SELECT
FROM Location
WHERE ST_Contains(ST_Buffer(:coordinate, :distance), l.coordinate.coordinate)

image

  • 공간 인덱스 적용
  • 기준 데이터 : 101,813 개

공간 인덱스 적용 전

  • 1km 이내 (40건) - 0.20068475
  • 3km 이내 (300건) - 0.20049575

공간 인덱스 적용 후

  • 1km 이내 (40건) - 0.00388475
  • 3km 이내 (300건) - 0.02058175

최소 10배의 성능 향상 확인됨.

image