我在MySQL数据库中存储了超过500000个位置,并且每天都会增加,我需要根据用户的位置检索最近的10个位置。
我设法做到了这一点,但我在这些大量的地点遇到了性能问题。
查询需要7秒才能执行。
我正在使用像这样的查询
select * from (select id,name ,calc_distance(long,lat) as distance from locatoin) as location_with_distance order by distance limit 10.
基于以上所述,在这些情况下使用的最佳做法是什么?或者,如果在这种情况下有任何数据库系统设计可用?
注意: - 查询的主要问题是不计算距离函数的排序。