gpt4 book ai didi

mysql - 如何找到点,根据接近程度排序,得到1-20、21-40等。高效使用Myisam和mysql以及空间索引

转载 作者:行者123 更新时间:2023-11-29 02:32:25 24 4
gpt4 key购买 nike

假设我想找到离我最近的 20 个商家。后者我想看看接下来的 20 个最接近的,等等。是的,我有 myisam。我在这一点上有空间索引。我正在寻找我应该发送的实际 SQL 命令。

说清楚:

注意:

  1. 我正在使用 mysql myisam 空间索引。我来回浏览谷歌,但没有找到任何关于我的确切需求的信息。
  2. 我不想计算 整个 table 的距离(效率太低)。空间索引的全部意义在于至少你可以有效地去除很多点。如果您左侧及上方的某些点不符合条件,则该点左侧及上方的所有点也不符合条件。
  3. 我不想计算距离 任何仍然效率低下的区域。我感兴趣的区域是 10 公里,那里有 65,000 家企业。
  4. 我不介意计算距离 对于合理数量的点,因为我想按以下方式对点进行排序 距离并能显示点1-20、21-40、41-60等。
  5. 我找到了一种用于 postgis 的方法 http://blog.opengeo.org/2011/09/28/indexed-nearest-neighbour-search-in-postgis/我想要类似的东西,但用于 mysql myisam。
  6. 我想要一个以实际 sql 代码作为示例或实际示例 sql 命令的网站。所以请不要只说“使用空间”。呃。我知道。我想要实际的 sql 命令。
  7. 我不想做先搜索小区域的复杂循环。必须有一个 sql 命令可以通过 mysql 引擎有效地一次性完成此操作。
  8. 笛卡尔距离很好。除非您在北极或南极,否则无需知道我们生活在地球上,而我们的大多数客户都不在这些地方。

有 160 万家公司。当然,为所有这些计算距离然后对其进行排序是愚蠢的。

这就是地理空间索引发挥作用的地方吧?

那么我需要发送什么 SQL 命令?

最佳答案

由于我无法对您的问题发表评论,我想我将不得不留下这个作为答案。

看这个问题:

https://gis.stackexchange.com/questions/22082/how-can-i-use-r-tree-to-find-points-within-a-distance-in-spatialite

稍微查看一下文档,MyIsam 提供的功能似乎没有很好的方法来做到这一点。

关于mysql - 如何找到点,根据接近程度排序,得到1-20、21-40等。高效使用Myisam和mysql以及空间索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com