Имам списък с 1 милион (бавно) движещи се точки по земното кълбо (съхранени като географска ширина и дължина). От време на време всяка точка изисква списък от 100 най-близки други точки (с конфигурируем максимален диапазон, ако това помага).
За съжаление, SELECT * SORT BY compute_geodetic_distance() LIMIT 100
е твърде бавен, за да се изпълнява от всяка точка отново и отново. Така че моят въпрос: как да се справя с това ефективно? Има ли по-добри алгоритми/структури от данни/... известни за това? Или това е единственият начин и трябва да разгледам разпределението на натоварването на сървъра?
(Забележка: това е за приложение за Android и точките са потребители, така че в случай, че пропускам специфично за android решение, не се колебайте да го кажете!)