【发布时间】:2020-07-14 08:29:12
【问题描述】:
我有一个包含 40k 场馆的数据库,并且现在还在增长。
假设我是红点
我希望能够尽快检索到最近的记录。
但是下一个项目的距离也可以是任何东西。并且也可能有 0-n 匹配。但是当我只是在寻找 1 时,我是否需要加载所有 40000 个结果?
如何按距离对记录进行排序?应该在 MYSQL 还是 PHP 中完成? 这种计算几乎发生在每个请求、每个用户、每个页面上,因此解决方案需要快速。
编辑感谢您提供快速而有希望的答案,我需要查看这些资源,并会在几天内接受/评论答案。
【问题讨论】:
-
您是否尝试过在查询中包含到场地的距离(通过使用计算列)并查看它的速度有多慢?
-
@Sam Holder 我使用简单的毕达哥拉斯计算运行查询,以检查交叉口附近有哪些场地,脚本执行比分配给交叉口的场地慢 1-2 秒。 (对于一台电脑来说,我觉得是很久了)
-
好的,很好。我只是在检查是否先完成了显而易见的事情,并且简单的解决方案不合适:)