技术问题: APP 需要做一个附近的人的功能,怎么做呢?数据库没法查性能也差(已知在线用户经纬度)

2017 年 11 月 27 日
 aidevs
V 友一般都有哪些好的技术方案?
5608 次点击
所在节点    程序员
30 条回复
xlvecle
2017 年 11 月 27 日
经典做法,经纬度用 geohash 编码,建一个 R Tree
QAPTEAWH
2017 年 11 月 27 日
普通 b-tree 肯定慢,储存 geo 数据有专门的数据结构(大致是个二维 b-tree)。

主流数据库肯定提供这种机制,文档里查查 spatial、geo 等词就知道了。
TangMonk
2017 年 11 月 27 日
redis 简单是简单,但是不如 gis 嵌入到数据库里面方便(比如说查询 50km 之类的 20 岁女性),用 postgres 就方便的多了。
honeycomb
2017 年 11 月 27 日
支持 R 树的数据库,或者现成提供包装好 geo 数据支持的
这样的功能连 mysql 都有
mooncakejs
2017 年 11 月 27 日
pg 一波流,全文搜索,地理位置,jsonb 都解决了。
NUT
2017 年 11 月 27 日
数据分片,然后并发查询 最后合并结果 速度在大也不虚
opengps
2017 年 11 月 28 日
以前没有知道这么一堆支持地理算法数据库的时候,我用的是关系型 sql server,采用结果不足放大在查的方法,先算经纬度加减 0.001 范围内,根据结果个数是否满足方法 0.001 ,最多放大 10 次,这样实现的。
sampeng
2017 年 11 月 28 日
elasticsearch,mongodb。专门解决此类问题
Yang2333
2019 年 10 月 15 日
码一下
Yang2333
2019 年 10 月 15 日
楼主...最后怎么做的呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/409904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX