У меня есть список из 1 миллиона (медленно) движущихся точек на земном шаре (хранящихся как широта и долгота). Время от времени каждая точка запрашивает список из 100 ближайших других точек (с настраиваемым максимальным диапазоном, если это помогает).
К сожалению, SELECT * SORT BY compute_geodetic_distance() LIMIT 100
выполняется слишком медленно для каждой точки снова и снова. Итак, мой вопрос: как мне эффективно справиться с этим? Известны ли для этого лучшие алгоритмы/структуры данных/...? Или это единственный способ, и я должен смотреть на распределение нагрузки на сервер?
(Примечание: это для приложения для Android, а точки — это пользователи, поэтому, если мне не хватает решения для Android, не стесняйтесь говорить об этом!)