Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como otimizar a consulta SQL com cálculo de distância por longitude e latitude?


Aqui estão algumas ideias, algumas das quais podem não se aplicar dependendo da sua situação exata.
  1. 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).
  2. 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.
  3. Se você tiver outros dados na tabela que serviriam como um bom primeiro filtro (país/região/etc.), poderá aplicá-los primeiro.
  4. 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.