La manera más rápida de encontrar la distancia entre dos puntos Lat / Long

Actualmente tengo poco menos de un millón de ubicaciones en una base de datos mysql, todas con información de longitud y latitud.

Estoy tratando de encontrar la distancia entre un punto y muchos otros puntos a través de una consulta. No es tan rápido como quiero, especialmente con más de 100 golpes por segundo.

¿Existe una consulta más rápida o posiblemente un sistema más rápido que no sea mysql para esto? Estoy usando esta consulta:

<code>SELECT 
  name, 
   ( 3959 * acos( cos( radians(42.290763) ) * cos( radians( locations.lat ) ) 
   * cos( radians(locations.lng) - radians(-71.35368)) + sin(radians(42.290763)) 
   * sin( radians(locations.lat)))) AS distance 
FROM locations 
WHERE active = 1 
HAVING distance < 10 
ORDER BY distance;
</code>

Nota: La distancia proporcionada es enMillas. Si necesitasKilómetros, utilizar6371 en lugar de3959.

Respuestas a la pregunta(16)

Su respuesta a la pregunta