相关疑难解决方法(0)

Yelp 如何高效计算数据库中的距离?

例如,假设我有一张桌子:

Business(BusinessID, Lattitude, Longitude)
Run Code Online (Sandbox Code Playgroud)

当然,所有的都被索引了。还有100万条记录

例如,假设我想找到最接近 106,5 的商家,我该怎么做?

如果我做

SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
Run Code Online (Sandbox Code Playgroud)

例如,或者如果我这样做

SELECT *
FROM Business
TOP 20
Run Code Online (Sandbox Code Playgroud)

理论上,计算机必须计算所有业务的距离,而实际上只有经度和纬度在一定范围内的业务才需要计算。

那么我怎样才能在 PhP 或 SQL 中做我想做的事呢?

我很感激到目前为止的答案。我正在使用 mysql 并且他们没有比明显的解决方案更有效的方法。MySQL 空间也没有计算距离函数。

optimization mysql-5.5 spatial relational-theory

9
推荐指数
2
解决办法
3920
查看次数