Я пытаюсь разработать схему MySQL, которая может сохранить список пользователей со связанной широтой и долготой.
Я был бы затем, для данного пользователя, любить создавать запрос, который может возвратить ближайшие 50 пользователей ему и отсортировать тех пользователей по расстоянию (при этом ближайшее представлено сначала).
Учитывая, что может быть много тысяч пользователей в этой таблице, что самый эффективный путь состоит в том, чтобы сохранить и запросить эти данные?
Попробуйте прочитать эту статью: Создание локатора магазинов с помощью PHP, MySQL и Google Maps В этой статье показано решение MySQL для Формулы Haversine, которое является лучшим способом вычисления расстояния с учетом широты и долготы.
Посмотрите на пространственное индексирование в MySql.
Вы также можете использовать расстояние большого круга, есть хорошая статья SO об этом здесь.