Какой самый быстрый способ поиска больших таблиц для точек в радиусе 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 секунд.

Если кто-нибудь знает какие-либо лучшие способы оптимизации, это было бы здорово.

Ответы на вопрос(2)

Ваш ответ на вопрос