Как правильно использовать индексы для таблицы с геолокациями
У меня есть таблица с геолокациями, соответственно у каждой записи помимо всего есть широта и долгота. Индексы применяются у меня пока что только для id, а я хочу оптимизировать свой запрос, который находит по входным широте и долготе ближайшую геолокацию. Выглядит он так
SELECT marker.id,, `lat`, `lng`, ( 3959 * acos( cos( radians(".$latitude.") ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians(".$long.") ) + sin( radians(".$latitude.") ) * sin( radians( `lat` ) ) ) ) AS distance FROM marker
JOIN image ON image.marker_id = marker.id
GROUP BY marker.id
ORDER BY distance LIMIT 3
С индексами только начал работать и не могу сообразить, как тут их максимально эффективно применить и помогут ли они вообще в этой задаче? Я в принципе готов пожертвовать дисковым пространством для увеличения скорости этого запроса. В общем, подскажите какой вид индексов использовать, для каких столбцов? Уместно ли это тут вообще? Спасибо за помощь