기타
MYSQL ST_DISTANCE_SPHERE 함수
MIN우
2024. 1. 17. 12:19
728x90
ST_DISTANCE_SPHERE 함수란?
MySQL에서 제공하는 지리 함수 중 하나로, 두 지점 사이의 거리를 구하는 데 사용한다.구의 표면을 이용하여 두 지점 사이의 최단 거리를 계산하고 이를 미터로 환산해준다.
ST_DISTANCE_SPHERE 함수의 사용법
ST_DISTANCE_SPHERE(point(lon1, lat1), point(lon2, lat2))
위 구문에서 lon1, lat1, lon2, lat2는 경도와 위도 값을 나타내다. 이 함수는 두 지점 사이의 거리를 미터 단위로 반환한다.
약간 헷갈리는게 우리가 위도/경도가 순서가 익숙한데 여기서는 경도, 위도 순이라는 점이다.
나중에 데이터값이 1000개 10000개 점점 늘어날 수록 성능이 급격하게 떨어질 수 있을 것 같다.
추후에 공간인덱스를 설정하여 나중에 성능을 최적화해보자
성능 최적화하기
공간 인덱스 (Spatial index)
point, line, polygon 데이터와 같은 DB에서 공간 쿼리 작업 성능을 향상시키는 데 사용되는 인덱스입니다
공간 인덱스를 사용해서 점의 특정 거리 내에 있는 객체를 찾는 작업 속도를 높일 수 있습니다
공간 인덱스는 셀이라고 하는 더 작고 관리하기 쉬운 청크로 분할해서 작동합니다
각 셀에는 객체 집합이 들어있으며 셀은 MySQL에서 공간 인덱스는 R-Tree 라는 자료구조를 사용하고 2차원 공간의 데이터를 인덱싱하는 데 사용됩니다
(R-Tree는 공간 쿼리에 최적화된 트리 기반 자료구조 입니다)
728x90