집 >데이터 베이스 >MySQL 튜토리얼 >Haversine 공식은 어떻게 데이터베이스에서 가까운 위치 찾기를 최적화할 수 있습니까?
Haversine 공식을 사용하여 주변 위치 찾기
데이터베이스에 저장된 대량의 사업장 위치를 처리할 때 검색 효율성은 주어진 지점에 가장 가까운 것이 중요해집니다. 모든 위치를 검색하고 하나씩 거리를 계산하는 현재 접근 방식은 업체 수가 증가함에 따라 엄청나게 느려질 수 있습니다.
Haversine 공식 소개
Haversine 공식은 다음과 같은 기능을 제공합니다. 행성의 곡률을 고려하여 지구상의 두 지점 사이의 거리를 계산하는 보다 효율적인 방법입니다. 이는 가장 가까운 위치를 직접 검색하기 위해 SQL 쿼리에 통합될 수 있습니다.
최적화된 SQL 쿼리
Haversine 공식을 사용하는 최적화된 SQL 쿼리는 다음과 같습니다.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
이 쿼리에서 37과 -122는 각각 해당 위치의 위도와 경도를 나타냅니다. 거리 열에는 지정된 위치와 각 업체 간의 거리가 포함됩니다. HAVING 절은 25마일(또는 원하는 다른 반경)보다 더 먼 위치를 필터링합니다.
장점
이 최적화된 접근 방식에는 여러 가지 장점이 있습니다.
결론
Haversine 공식을 SQL 쿼리에 통합하면 특정 지점에서 가장 가까운 위치를 찾는 효율성을 크게 향상시켜 성능 문제를 효과적으로 해결하고 확장 가능한 솔루션을 제공할 수 있습니다. 대규모 데이터베이스용.
위 내용은 Haversine 공식은 어떻게 데이터베이스에서 가까운 위치 찾기를 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!