【发布时间】:2017-05-16 02:11:21
【问题描述】:
我正在尝试按位置获取“我”周围的积分,这非常简单:
select * from X where ((SQRT(POW(69.1 * (a.lat - 49.201441 ), 2) +
POW(69.1 * (16.161299 - a.lng) * COS(a.lat / 57.3), 2))) <='1') LIMIT 5
*
my location = 49.201441;16.161299
distance = 1 (mile)
此查询返回我周围 1 英里处的“我”周围的 5 个点。这很快,但就在我的表有一个......我不知道,可能是 5000 行时。
我在 200 000 行表上使用此查询,而且速度非常慢!也许.. 2-7 秒,即使限制是 1 = 没有区别。
有人可以向我解释并帮助我吗?非常感谢各位!
顺便说一句:如果我的查询不包含这部分查询 = 可能需要 0.0008 秒...所以查询的第二部分是正确的。
【问题讨论】: