gpt4 book ai didi

mysql - 使用 MYSQL InnoDB 进行地理位置搜索

转载 作者:行者123 更新时间:2023-11-29 23:20:05 26 4
gpt4 key购买 nike

我正在开发一个支持 GEO 的应用程序,其中我有一个明显的用例,即搜索给定用户位置一定距离内的用户。目前我正在使用 MySQL 数据库。由于用户表预计会变得非常大,获取结果的时间会变得更长(太长,以防需要遍历整个表)。

我正在使用 InnoDB,因为我的表确实需要很多 MYISAM 无法做到的事情。我尝试过 mongo,并进行了添加 500 万用户的测试,并对它们进行了一些测试。现在我很想知道 MYSQL 在相同情况下可以提供什么,因为如果它给出的结果与 mongo 稍微接近,我会更喜欢 MYSQL。

我的用户表有其他字段以及 lat 字段和 lng(均已索引)。但仍然需要很多时间。任何人都可以建议更好的设计方法以更快地获得结果。

最佳答案

Mongo 有一堆非常有用的内置地理空间命令和聚合,非常适合您在给定用户点附近查找用户的给定情况。其他包括within查找边界框或多边形内的点。在你的情况下 geoNear聚合是完美的,可以提供距给定点的计算距离。您将必须使用 mysql 编写许多这样的功能。那么你还有 Postgis Postgres 的附加组件。 Postgres 是典型的开源 Mysql 竞争对手,Postgis 的历史比 Mongo 更久,而且这个数据库大概是开放街道 map 、政府地理信息系统等类似产品背后的数据库。

但是对于这个问题,你需要使用geojson格式和2dsphere您可能没有使用的索引。发布您的数据的单个记录。

关于mysql - 使用 MYSQL InnoDB 进行地理位置搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401152/

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