gpt4 book ai didi

mysql - 用户空间点列或不在 MySQL 中以提高性能

转载 作者:行者123 更新时间:2023-11-29 08:31:12 25 4
gpt4 key购买 nike

我在我的应用程序中使用 MySQL 来存储城市列表。每个经/纬度代表城市的中心。

我希望能够拉出与某个特定城市相距 X 公里的所有城市。

我的问题是为此目的什么会执行得更快。

  • 使用“点”列,并使用“空间”查询来检索数据?

或者

  • 使用 float 经度列和 float 纬度列。然后在对这些值运行 SQL WHERE BETWEEN 查询之前使用 java 代码生成距离之间的经度/纬度。

我还有一个小问题,请求距纽约 10 公里的所有城市是否有意义。纽约范围何时可能大于 10 公里?

最佳答案

在这种情况下,空间扩展总是更好,因为它基于 R-Tree 索引,该索引针对 N 维空间中的范围搜索进行了优化。

而 native mysql 索引是 B 树,在最好的情况下,只会使用索引中的一个字段(用于范围比较),或者根本不使用索引(如果您使用一些高级地理公式,如另一个公式)答案)。

关于mysql - 用户空间点列或不在 MySQL 中以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16554890/

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