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

Hvordan optimerer man SQL-forespørgsel med beregning af afstand efter længde- og breddegrad?

Her er et par ideer, hvoraf nogle muligvis ikke gælder afhængigt af din nøjagtige situation.

  1. Du kan foretage konverteringen af ​​bredde- og længdegrad til radianer og også gemme det i rækken. Dette ville spare omkostningerne ved disse beregninger (faktisk ville omkostningerne påløbe én gang, når dataene blev lagret).
  2. Hvis din tabel er meget stor, kan du bruge en simpel lineær afstandsberegning i stedet for Haversince-formlen for at begrænse de resultater, som du anvender Haversince-formlen på.
  3. Hvis du har andre data i tabellen, der ville fungere som et godt første filter (land/område/osv.), kan du anvende det først.
  4. Du kan omarrangere dine joinforbindelser, så de anvendes efter afstandsfiltret, så du ikke pådrager dig omkostningerne ved joinforbindelsen på data, der ikke kvalificerer.


  1. PHP/MYSQL Deltag i flere tabeller

  2. Kombiner flere SELECT-udsagn

  3. Sådan installeres og konfigureres phpMyAdmin på CentOS 6

  4. django karaktersæt med MySQL weirdness