目前我有幾個100k +行的表。我正在試圖查找如下的數據。什麼是在半徑內查找大表的最快方法MySQL(緯度經度)
SELECT
*, SQRT(POW(69.1 * (latitude - '49.1044302'), 2) + POW(69.1 * ('-122.801094' - longitude) * COS(latitude/57.3), 2)) AS distance
FROM stops
HAVING distance < 5
ORDER BY distance limit 100
但是目前這種方法在高負載下會變慢。有些查詢需要20多秒才能完成。
如果有誰知道什麼更好的方法來優化這將是巨大的。
這很複雜:[_scalable lat/lng searches_](https://mariadb.com/kb/en/latitudelongitude-indexing/) –
您是否按照建議檢查了mysql地理空間類型? – e4c5