sql >> Database >  >> RDS >> Mysql

Hoe gebruik ik de lengte-/breedtegraadwaarden efficiënt in Mysql?

Focus op (a):

In het verleden heb ik onderdelen vooraf berekend, waarbij ik de lat, long, xaxis, yaxis en zxais heb opgeslagen, waarbij de x, y &z zijn gedefinieerd als:

xaxis = cos(radians(Lat)) * cos(radians(Lon))
yaxis = cos(radians(Lat)) * sin(radians(Lon))
zaxis = sin(radians(Lat))

De afstand kan dan worden berekend met behulp van SQL losjes zoals (acos( xaxis * $xaxis + yaxis * $yaxis + zaxis * $zaxis ) * 6367.0 / 1.852) (waarbij degenen die beginnen met een $ vooraf zijn berekend voor het betreffende startpunt op dezelfde manier als hierboven)

Pre-computing op deze manier duwt de relatief dure trig naar een eenmalige gebeurtenis en vereenvoudigt de query.



  1. Kan ik hoofdletterongevoelig zoeken met JSON_EXTRACT in MySQL?

  2. MySQL Selecteer Top N Rijen

  3. Oracle Update Query met behulp van Join

  4. MySQL, voeg twee kolommen samen