Я создаю сайт сообщества. Где мне нужно искать профиль пользователя по расстоянию. Например, я живу в городе Лондон. Долгота и широта моего местоположения составляют 0,2 и -1,2. Теперь я хочу выполнить запрос mysql, который покажет мне порядок профилей пользователей по расстоянию от меня, поэтому сначала я увижу всех пользователей из Лондона, а затем в соседнем городе, а затем соседняя страна и так далее.
Я Google, я получил один запрос MySQL:
SELECT latitude, longitude, SQRT( POW( 69.1 * ( latitude - 52.58 ) , 2 ) +
POW( 69.1 * ( - 1.12 - longitude ) * COS( latitude / 57.3 ) , 2 ) ) AS distance
FROM location ORDER BY distance
Теперь проблема, с которой я сталкиваюсь, заключается в том, что некоторые люди говорят, что этот путь будет медленным, если у вас будет 100 000 пользователей или больше для поиска. Есть ли оптимальное решение для этого?