Mysql SQL查询和地理位置坐标

Mysql SQL查询和地理位置坐标,mysql,geospatial,Mysql,Geospatial,前几天,我和一位同事发生了激烈的争论,我想咨询stackoverflow社区哪种方法是可行的,甚至是正确的 第一种方法(我实现的解决方案)是一种标准方法,即围绕一些给定坐标“画一个圆”,然后查询数据库以检索特定范围内(从1到25英里)的所有“标记”。这种方法是有效的,并给出了准确的结果,但当密集区域中有许多“标记”时,有时会有点慢 同事采用的方法如下: 获取给定的坐标,上下取整并查询数据库以找到“闭合标记”,然后使用上述方法执行另一个查询 为了让这更清楚一点,我们假设坐标为-32.371267和

前几天,我和一位同事发生了激烈的争论,我想咨询stackoverflow社区哪种方法是可行的,甚至是正确的

第一种方法(我实现的解决方案)是一种标准方法,即围绕一些给定坐标“画一个圆”,然后查询数据库以检索特定范围内(从1到25英里)的所有“标记”。这种方法是有效的,并给出了准确的结果,但当密集区域中有许多“标记”时,有时会有点慢

同事采用的方法如下: 获取给定的坐标,上下取整并查询数据库以找到“闭合标记”,然后使用上述方法执行另一个查询

为了让这更清楚一点,我们假设坐标为-32.371267和115.827467。我们将运行一个查询来查找周围的“标记”,它们位于-32和116以及33和115中

我试图论证这是不可能的,并且会导致性能降低,因为它需要一个内部连接,而不是一个大型查询,但到目前为止,他的实现是否能够工作仍然是未知的


有人对此有什么想法吗?

测试它可能是最好的方法。似乎做一个粗略的估计,将数据库中所有内容的结果缩减为可能的候选结果,可以提高性能,因为许多比较都可以用更简单的逻辑完成,并且可能会被索引。然后,复杂的距离逻辑将只应用于几行。