15
查找两个纬度/经度点之间距离的最快方法
目前,我在mysql数据库中的位置不足一百万,所有位置都包含经度和纬度信息。 我试图通过查询找到一个点和许多其他点之间的距离。它并没有我想要的那么快,特别是每秒100次以上的命中。 是否有更快的查询,或者可能是比mysql更快的系统?我正在使用此查询: SELECT name, ( 3959 * acos( cos( radians(42.290763) ) * cos( radians( locations.lat ) ) * cos( radians(locations.lng) - radians(-71.35368)) + sin(radians(42.290763)) * sin( radians(locations.lat)))) AS distance FROM locations WHERE active = 1 HAVING distance < 10 ORDER BY distance; 注意:提供的距离以英里为单位。如果您需要公里,请使用6371代替3959。