sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger jeg værdier for længde/breddegrad effektivt i Mysql?

For at fokusere på (a):

Tidligere har jeg forudberegnet dele, lagret lat, long, xaxis, yaxis og zxais, hvor x, y og z er defineret som:

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

Afstanden kan derefter beregnes ved hjælp af SQL løst som (acos( xaxis * $xaxis + yaxis * $yaxis + zaxis * $zaxis ) * 6367.0 / 1.852) (hvor dem, der starter med en $, er forudberegnet for det pågældende startpunkt på samme måde som ovenfor)

Forudregning på denne måde skubber den relativt dyre trig til en engangsbegivenhed og forenkler forespørgslen.



  1. Hvordan sender man en liste over ID'er til MySQL-lagret procedure?

  2. Hvorfor kan jeg ikke ekskludere afhængige kolonner fra "GROUP BY", når jeg samler med en nøgle?

  3. Lav en mere avanceret model med bruger-, tråd- og indlægsstatusser

  4. AWS Database Migration Service DMS