В настоящее время в базе данных 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
.