Какой самый быстрый способ поиска больших таблиц для точек в радиусе MySQL (широта и долгота)
В настоящее время у меня есть несколько таблиц с 100k + строк. Я пытаюсь найти данные следующим образом.
SELECT
*, SQRT(POW(69.1 * (latitude - '49.1044302'), 2) + POW(69.1 * ('-122.801094' - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM stops
HAVING distance < 5
ORDER BY distance limit 100
Но в настоящее время этот метод замедляется при высокой нагрузке. Для выполнения некоторых запросов требуется более 20 секунд.
Если кто-нибудь знает какие-либо лучшие способы оптимизации, это было бы здорово.