QQ、微信附近的人功能,每次点击该选项,发送当前用户经纬度和标示去服务器,然后获取最近出现的人,为了提高效率和记录的更加精准,应该每次都记录该信息。
但是在获取的时候。如果一个人在几分钟内多次点击该条目,其实发送了多次信息,但是其他用户在读取附近的人信息,该人只能显示一次。
所以牵扯一个sql数据库去除重复字段问题。
实现思路一开始选择出某人最新的时间,然后使用in来过滤,后来发现数量量大,实在效率太低。。
所以更新算法,使用内连接来实现该功能。
思路是让自己链接自己。根据最新时间来计算。
select [用户ID],[经度],[维度]from 表名 as a
inner join (select MAX([添加时间])as [添加时间] from 表名 group by [用户ID]) as b
on a.添加时间=b.添加时间 order by [添加时] desc
效率猛增……
针对社交软件中“附近的人”功能存在的重复记录问题,本文介绍了一种通过优化SQL查询算法来提升数据处理效率的方法,利用内连接操作筛选出每个用户最新的地理位置记录。
1225

被折叠的 条评论
为什么被折叠?



