有效地尋找附近位置對於地圖和導航等應用程式至關重要。半正矢公式是一種廣泛使用的計算球體上兩點之間距離的方法。此公式可以直接在 SQL 中實現,以優化基於位置的搜尋查詢。
在您的情況下,您擔心計算超過 5000 個企業的距離的性能。考慮使用以下帶有半正矢公式的 MySQL 查詢:
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」替換為使用者位置的緯度和經度。透過計算資料庫內的距離,您無需檢索所有商家並在 PHP 中執行距離計算。
使用這種最佳化方法,您可以顯著提高附近位置搜尋的速度,使其適合用於處理大型資料庫。為了獲得最佳效能,對距離計算中涉及的列進行索引非常重要。
以上是如何優化大型企業資料庫的基於位置的搜尋查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!