获取用户当前位置的最佳方式

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 位置的最佳方式

从 Apple Watch 复杂功能获取核心位置数据的最佳方式?

在android中获取当前准确位置的最佳方法是啥?

获取用户在Android中的位置的好方法