假设我想找到离我最近的 20 家企业。稍后我想查看下一个最接近的 20 个,等等。是的,我有 myisam。我有空间索引。我正在寻找我应该发送的实际 SQL 命令。
说清楚:
笔记:
- 我正在使用mysql myisam空间索引。我来回浏览谷歌,并没有发现我的确切需求。
- 我不想计算整个表的距离(这太低效了)。空间索引的重点是至少你可以有效地去除很多点。如果您左侧和上方的某些点不符合条件,那么该点左侧和上方的所有点也不符合条件。
- 我不想计算任何仍然低效的区域的距离。我感兴趣的区域是 10 公里,那里有 65,000 家企业。
- 我不介意计算合理数量的点的距离,因为我想按距离对点进行排序并能够显示点 1-20、21-40、41-60 等。
- 我为postgis找到了一种方法http://blog.opengeo.org/2011/09/28/indexed-nearest-neighbour-search-in-postgis/我想要类似的东西,但对于mysql myisam。
- 我想要一个以实际 sql 代码作为示例或实际示例 sql 命令的网站。所以请不要只说“使用空间”。呃。我知道。我想要实际的 sql 命令。
- 我不想先搜索一个小区域的复杂循环。必须有一个 sql 命令可以通过 mysql 引擎有效地一次性完成此操作。
- 笛卡尔距离很好。除非您在北极或南极,否则无需知道我们生活在一个地球上,这不是我们大多数客户所在的地方。
有 160 万家企业。当然,计算所有它们的距离然后对其进行排序是愚蠢的。
这就是地理空间索引发挥作用的地方吗?
那么我需要发送什么 SQL 命令呢?