-
Notifications
You must be signed in to change notification settings - Fork 2
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
공간 데이터 테스트입니다 #3
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<description> - lombok 테스트 의존성 추가 - hibernate spatial 의존성 추가
<description> 추후 postgresql 추가를 편하게 하기 위해 변경
<description> <issue-number>
belljun3395
added a commit
to Capstone-Walking/Capstone-Walking-BE
that referenced
this pull request
May 8, 2024
<description> 해당 테스트의 경우 테스트 레포에서 진행하여 삭제합니다. Capstone-Walking/Capstone-Walking-BE-TEST#3
todo - 테이블 생성 sql 추가 |
nove1080
pushed a commit
to Capstone-Walking/Capstone-Walking-BE
that referenced
this pull request
May 11, 2024
<description> 해당 테스트의 경우 테스트 레포에서 진행하여 삭제합니다. Capstone-Walking/Capstone-Walking-BE-TEST#3
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
공간 타입 테스트
위치와 관련된 데이터를 다루기 위해서 위도와 경도 정보를 공간 타입으로 저장하여 사용할 수 있습니다.
해당 테스트에서는 위도와 경도를 그냥 사용하였을 때와 공간 타입을 사용하여 사용하였을 때를 비교하였습니다.
자세한 설명: https://belljundev.tistory.com/18
테스트 실행하기
환경
scripts/env/local-develop-setting
를 실행합니다.데이터
MySQL
application-test에서 프로필을 mysql-local로 설정합니다.
테이블 생성을 위해 프로필을 local로 설정한 이후 애플리케이션을 실행합니다.
http://localhost:18080/ 에 접속하여 아래 SQL 명령을 입력합니다.
scripts/sql/mysql-data-load-script
에 해당하는 내용입니다.!!! 주의 !!!
아래 스크립트를 실행하는 것에 상당히 오랜 시간이 소요됩니다... 저는 1시간 정도...
PostgreSQL
application-test에서 프로필을 postgresql-local로 설정합니다.
우선 postgis 익스텐션 설치를 위해
scripts/env/install-postgis-script
를 실행합니다.테이블 생성을 위해
application-local
의mysql-local
을postgresql-local
변경한 이후 local 프로필인 상태로 애플리케이션을 실행합니다.http://localhost:18080/ 에 접속합니다.
이때 데이터베이스 형식을 MySQL에서 PostgreSQL로 변경합니다.
spgist
인덱스 추가를 위해 아래 SQL 명령을 입력합니다.scripts/sql/postgresql-index-script
에 해당하는 내용입니다.데이터 추가를 위해 아래 SQL 명령을 입력합니다.
scripts/sql/postgresql-data-load-script
에 해당하는 내용입니다.MySQL과 다르게 금방 됩니다. ㅎㅎ
테스트 결과 공유
단순 위치 조회에 있어서 성능은 기대 이하였지만 공간을 활용하는 조회에 있어서 성능은 위도와 경도를 사용했을 때보다 월등함을 확인할 수 있었습니다.
하지만 이는 단순히 공간 타입을 사용했을 때가 아닌 공간 타입 인덱스를 사용하였을 때 이야기입니다.
그렇기에 개발을 진행하며 작성하는 쿼리가 공간 타입 인덱스를 활용하고 있는 것인지 염두에 두며 쿼리를 작성하여야 할 것으로 예상됩니다.
ST_DISTANCESPHERE
공간 위치 함수 중
ST_DISTANCESPHERE
는 공간 데이터 사이의 거리를 계산해 주는 함수로 공간 인덱스를 활용하지 못합니다.조회 대상 필터링 없이 해당 함수를 사용하면 테이블 풀 스캔이 일어납니다.
해당 함수를 사용할 때는 조회 대상을 필터링한 이후 사용하는 것을 추천합니다.
ex) Test
사각형을_만들어_필터링_후_ST_DISTANCESPHERE를_활용하여_일정_거리_이내의_위치를_조회합니다
ST_CONTAINS
공간 위치 함수 중
ST_CONTAINS
는 공간 데이터의 포함 관계를 파악하는 함수로 공간 인덱스를 활용할 수 있습니다.