android - 【排序策略】GPS搜索附近的人
阿神
阿神 2017-04-17 13:09:54
[iOS讨论组]

背景描述:
一个用户提供其经纬度,后台在数据库里查询经纬度最近的(假设一百个)人

问题描述:
1、假设不分表,所有用户在一个表,那么如果用户超多,假设一亿条。我得全取出来再计算距离,再排序(内存排序还不一定能搞定,因为数据太多)。而且,用不到数据库的自身排序功能,工作量全转移到业务层了。有什么好的方法吗?比如,又没有缩小待排序范围的技巧?

2、如果分表呢?抛开上个问题,怎么排序?假设数据根据用户名,哈希到5各表,我想到的就是归并了(感觉像那种面试题,5个排序队列,每个队列20人,找十个队列中最小的8个数字,呵呵)。这是一个没有经验的人的想法,求前辈指点。

阿神
阿神

闭关修行中......

全部回复(3)
高洛峰

可以考虑用分表,采用top k算法,多线程计算,最后再找出最小的几个

阿神

建立空间索引

PHP中文网

geohash

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号