首頁  >  文章  >  資料庫  >  如何使用MySQL高效率檢索指定範圍內的位址?

如何使用MySQL高效率檢索指定範圍內的位址?

Susan Sarandon
Susan Sarandon原創
2024-11-03 15:13:03234瀏覽

How to Efficiently Retrieve Addresses within a Specified Range using MySQL?

使用MySQL高效檢索指定範圍內的位址

要有效檢索給定位置5英里半徑內的位址,在Java 中檢索所有100,000 個位址併計算距離的效率很低。相反,MySQL 透過半正弦公式提供了合適的解決方案。

半正弦公式計算球體上兩點之間的大圓距離,在本例中為使用者的位置和每個位址。使用此公式,您可以建構如下 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 代表位址座標。透過應用半正弦公式,查詢計算每個位址與使用者位置之間的距離,並僅選擇 5 英里範圍內的位址。

透過利用此方法,您可以有效率地檢索需要查詢的位址。顯示在地圖上,同時避免計算所有 100,000 個位址的距離的昂貴計算任務。

以上是如何使用MySQL高效率檢索指定範圍內的位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn