sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo optimizar la consulta SQL calculando la distancia por longitud y latitud?

Aquí hay algunas ideas, algunas de las cuales pueden no aplicarse según su situación exacta.

  1. Podrías hacer la conversión de latitud y longitud a radianes y guardarlos en la fila también. Esto ahorraría el costo de esos cálculos (en realidad, el costo se acumularía una vez al almacenar los datos).
  2. Si su tabla es muy grande, puede usar un cálculo de distancia lineal simple en lugar de la fórmula de Haversince para limitar los resultados a los que aplica la fórmula de Haversince.
  3. Si tiene otros datos en la tabla que servirían como un buen primer filtro (país/región/etc.), podría aplicarlos primero.
  4. Puede reordenar sus uniones para que se apliquen después del filtro de distancia para no incurrir en el costo de la unión en datos que no califican.