获取用户当前位置的最佳方式
Posted
技术标签:
【中文标题】获取用户当前位置的最佳方式【英文标题】:Get users current position the best way 【发布时间】:2013-02-10 16:00:40 【问题描述】:我正在制作一个排名应用程序,并通过这种方式获得用户在排名中的位置:
$sql = "SELECT fk_player_id FROM ".$prefix."_publicpoints
WHERE date BETWEEN '2013-01-01' AND '2013-12-31'
GROUP BY fk_player_id
HAVING SUM(points) > 235";
这是按原样工作的,但有一个失败。如果我的排名有 500.000 个用户,那么查询会变得非常繁重。然后它必须遍历所有得分高于 235 的用户。假设 235 给出的位置为# 345.879。那是很多行......我怎样才能以更好的方式做到这一点?至少当我调用数据库时?
希望提前 4 点帮助和感谢 :-)
【问题讨论】:
【参考方案1】:3 种可能的解决方案,根据情况可能(或可能或可能不将它们组合在一起)
为排名列添加索引 仅在排名发生变化时预计算排名 使用 cron 作业预先计算行列 - 是否迟到 10 分钟无关紧要。如果是通用排名页面,你可以使用模板引擎预渲染页面并缓存它
您也可以使用更多内存或配置查询和临时表的缓存来优化您的 mysql 性能
【讨论】:
以上是关于获取用户当前位置的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
Android API 30 及更高级别在后台获取 GPS 位置的最佳方式