【排序策略】GPS搜索附近的人


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

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

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

移动互联网 创业 ios开发 Android

坐看脑残乱喷 9 years, 8 months ago

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

Aoist answered 9 years, 8 months ago

Your Answer