Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

좌표계에 조회용 컬럼 추가 #98

Open
honeyl3ee opened this issue Dec 4, 2023 · 1 comment
Open

좌표계에 조회용 컬럼 추가 #98

honeyl3ee opened this issue Dec 4, 2023 · 1 comment

Comments

@honeyl3ee
Copy link
Contributor

  • 좌표값을 반올림해서 조회용 컬럼으로 추가
  • 인덱스로 조회되는 컬럼의 수를 늘림
@kshshkim
Copy link
Contributor

kshshkim commented Dec 6, 2023

  • 문제상황
    • 인덱스 자료구조의 특성상, 경도와 위도 중 하나의 컬럼에 대해서만 인덱스를 활용 가능함.
      • 일반적으로 B Tree 구조임.
      • 값 비교 조건(gt, lt, between 등)이 들어가는 경우, 두번째 필드에 대한 인덱스 접근이 불가능함.
        • ex) 위도 범위를 통해 데이터 범위를 1차로 제한한 경우, 경도 조건은 인덱스를 활용하지 못함. 위, 경도의 특성상 복합키를 사용하더라도 효과가 없거나 미미할 것으로 생각됨. (단위가 너무 상세하여 중복되는 값이 거의 존재하지 않음.)
  • 개선 방안
    • 인덱스 활용 관련 개선
      • 위도 혹은 경도 범위의 세분성을 조정한 조회용 컬럼 추가 후 복합 인덱스를 설정(첫번째 조회 조건의 중복도를 높이고, 두번째 조회 조건에 대해 범위를 지정할 수 있음.)
        • 경도의 소수점 단위를 좀 더 큰 단위로 반올림한 인덱스 필드 경도v를 추가
        • (경도v, 위도) 인덱스 설정
        • where 경도v in (?, ?, ?, ...) and 위도 between ? and ? 형태의 조건문을 사용할 경우, 경도v위도 컬럼 모두 인덱스를 타고 조회할 수 있을 것임. range scanin 절 조건의 숫자만큼 일어날 것으로 기대됨.
        • 쿼리 결과에 반경 범위 바깥의 식당이 좀 더 많이 포함될 것이지만, 서비스 특성상 그다지 큰 문제가 아님.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants