Aqui estão algumas ideias, algumas das quais podem não se aplicar dependendo da sua situação exata.
- Você pode fazer a conversão de latitude e longitude em radianos e armazenar isso na linha também. Isso economizaria o custo desses cálculos (na verdade, o custo seria acumulado uma vez ao armazenar os dados).
- Se sua tabela for muito grande, você pode usar um cálculo de distância linear simples em vez da fórmula de Haversince para limitar os resultados aos quais você aplica a fórmula Haversince.
- Se você tiver outros dados na tabela que serviriam como um bom primeiro filtro (país/região/etc.), poderá aplicá-los primeiro.
- Você pode reordenar suas junções para que sejam aplicadas após o filtro de distância para que você não incorra no custo da junção em dados que não se qualificam.