【发布时间】:2016-11-27 15:47:00
【问题描述】:
目前我有几张超过 100k 行的表。我正在尝试查找如下数据。
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 多秒才能完成。
如果有人知道任何更好的优化方法,那就太好了。
【问题讨论】:
-
您是否按照建议检查了 mysql 地理空间类型?
标签: mysql sql query-optimization geospatial latitude-longitude