Задавайте вопросы, мы ответим
Вы не зашли.
Объясняю ситуацию. Исходные данные: координаты места нахождения. База данных с названием аэропортов и их координатами. Задача - найти ближайший аэропорт к месту нахождения.
На первый взгляд элементарное решение:
SELECT * FROM `airport` WHERE `lon`>='45.007693' and `lat`>='38.786200' ORDER BY `lon`, `lat` LIMIT 1
потом так же с меньше и выбор ближайших из двух. НО! Такая сортировка не сработала. Потом понял почему.
Господа опытные SQLщики - помогите решить задачу! Как с меньшими нагрузками на сервер (в базе 10 000+ записей) сделать выборку записи координаты которой максимально близки к заданным.
Неактивен
Формула для расстояния до точки выглядит иначе. Если сортировать по этой формуле, то будет полный перебор всех строк таблицы. Для 10 тысяч это не смертельно, но и не быстро. Чтобы ускорить, нужно поменять логику. Например, можно перебирать не все аэропорты, а только те, у которых широта и долгота отличается от искомой не более, чем на 15 градусов.
Неактивен