MySQL을 사용하여 특정 범위 내 주소를 효율적으로 검색
주어진 위치에서 반경 5마일 내의 주소를 효과적으로 검색하려면 100,000개의 주소를 모두 검색하고 Java로 거리를 계산하는 것은 비효율적입니다. 대신 MySQL은 Haversine 공식을 통해 적합한 솔루션을 제공합니다.
Haversine 공식은 구 위의 두 지점(이 경우 사용자 위치와 각 주소) 사이의 대원 거리를 계산합니다. 이 공식을 사용하면 다음과 같이 MySQL 쿼리를 구성할 수 있습니다.
<code class="sql">SELECT *, ( 3959 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5;</code>
위 쿼리에서 $lat 및 $lng는 사용자의 좌표를 나타내고 lat 및 lng는 주소 좌표를 나타냅니다. Haversine 공식을 적용하여 쿼리는 각 주소와 사용자 위치 사이의 거리를 계산하고 5마일 범위 내의 주소만 선택합니다.
이 접근 방식을 활용하면 필요한 주소를 효율적으로 검색할 수 있습니다. 100,000개 주소 모두에 대한 거리를 계산하는 계산 비용이 많이 드는 작업을 피하면서 지도에 표시됩니다.
위 내용은 MySQL을 사용하여 지정된 범위 내의 주소를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!