sql >> Databasteknik >  >> RDS >> Mysql

Hur optimerar man SQL-frågan med att beräkna avstånd efter longitud och latitud?

Här är några idéer, varav några kanske inte gäller beroende på din exakta situation.

  1. Du kan göra omvandlingen av latitud och longitud till radianer och lagra det i raden också. Detta skulle spara kostnaden för dessa beräkningar (i själva verket skulle kostnaden tillkomma en gång när data lagras).
  2. Om din tabell är mycket stor kan du använda en enkel linjär avståndsberäkning istället för Haversince-formeln för att begränsa resultaten som du använder Haversince-formeln på.
  3. Om du har andra data i tabellen som skulle fungera som ett bra första filter (land/region/etc.), kan du använda det först.
  4. Du kan ordna om dina anslutningar så att de tillämpas efter distansfiltret så att du inte ådrar dig kostnaden för anslutningen på data som inte kvalificerar sig.


  1. Välj rader från en tabell, slå samman den senaste raden från en annan tabell med en-till-många-relation

  2. ladda upp bilder till servern under våren MVC och lagra referens i mysql databas

  3. Anslutning till MySQL från .NET med SSH.NET Library

  4. Android:NullPointerException Det går inte att ladda databasen till listvyn i ett fragment