我對MYSQL查詢並沒有特別瞭解,並且對它們進行了優化,所以我需要一點幫助。我正在檢查一張國際城市的表格,根據表格中的經度和緯度值查找最近的10個城市。優化這個非常慢的MySQL查詢
我使用這個查詢如下:
SELECT City as city,
SQRT(POW(69.1 * (Latitude - 51.5073509), 2) +
POW(69.1 * (-0.1277583 - Longitude) * COS(Latitude/57.3), 2)) AS distance
from `cities`
group by `City`
having distance < 50
order by `distance` asc
limit 10
(經度緯度&值有明顯動態放置在我的代碼)
有時候這可能需要大約3-4 mintues我的開發環境要完成。
我在這裏做過任何經典錯誤,還是有更好的查詢我應該用來檢索這些數據?
任何幫助woould將不勝感激。
您能提供執行計劃嗎? – Jester
在選擇計算一般是緩慢的,所以我認爲這是你的問題 – Jester
請參閱http://stackoverflow.com/a/38771805/267540和http://stackoverflow.com/a/38548557/267540 – e4c5