【发布时间】:2013-12-29 13:01:24
【问题描述】:
我对这个查询有疑问:
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 对数据库来说太重了。 知道如何解决吗?
【问题讨论】:
-
去掉order by和group by需要多长时间?
-
没有顺序和分组只需要0.0097 sek
-
采取分组并限制为子查询,差别不大,但我可以说一点。
标签: mysql sql performance geo