>데이터 베이스 >MySQL 튜토리얼 >Haversine 공식은 어떻게 데이터베이스에서 가까운 위치 찾기를 최적화할 수 있습니까?

Haversine 공식은 어떻게 데이터베이스에서 가까운 위치 찾기를 최적화할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-07 19:53:031065검색

How Can the Haversine Formula Optimize Finding Nearby Locations in a Database?

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마일(또는 원하는 다른 반경)보다 더 먼 위치를 필터링합니다.

장점

이 최적화된 접근 방식에는 여러 가지 장점이 있습니다.

  • 데이터베이스 부하 감소: 가장 가까운 위치만 선택하므로 데이터베이스에서 검색되는 레코드 수를 최소화합니다.
  • 향상된 성능: 계산 PHP에서 거리를 계산하는 오버헤드를 피하면서 데이터베이스 내에서 수행됩니다.
  • 확장성: 많은 사업장 위치를 ​​처리할 때에도 효율성이 유지됩니다.

결론

Haversine 공식을 SQL 쿼리에 통합하면 특정 지점에서 가장 가까운 위치를 찾는 효율성을 크게 향상시켜 성능 문제를 효과적으로 해결하고 확장 가능한 솔루션을 제공할 수 있습니다. 대규모 데이터베이스용.

위 내용은 Haversine 공식은 어떻게 데이터베이스에서 가까운 위치 찾기를 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.