我对此查询有疑问:

  SELECT city,6371 * ACos( Cos(RADIANS(Lat)) * Cos(RADIANS(51.166698)) * Cos(RADIANS(-1.7833) -   RADIANS(Lng)) + Sin(RADIANS(Lat)) * Sin(RADIANS(51.166698)) ) AS Distance
  FROM GeoPC
  GROUP BY city ORDER BY Distance LIMIT 20


查询大约需要30秒。数据库中大约有170万行,而group by和order by对于数据库来说太重了。
知道我该如何解决吗?

最佳答案

您是否尝试过将Distance参数移动到GeoPC表中的计算字段?从表面上看,我看不出它有什么大的不同,但是可以很快尝试一下。

关于mysql - 纬度经度mysql查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20521113/

10-15 21:18