Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przyspieszyć formułę Haversine w mysql?

dlaczego używasz HAVING ... ze względu na fakt, że twoje zapytanie nie używa funkcji zagregowanej, dzięki czemu możesz filtrować za pomocą gdzie (ale gdzie nie używasz, musisz powtórzyć kod ) i dla wydajności za pomocą gdzie unikaj pełnego skanowania w celu ponownego podniesienia wynik oceny

  $query = $mysqli->query("SELECT postcode, (
        6371 * acos (
        cos ( radians('$latitude') )
        * cos( radians( lat ) )
        * cos( radians( lng ) - radians('$longitude') )
        + sin ( radians('$latitude') )
        * sin( radians( lat ) )
      )
  ) AS distance
  FROM postcodetabel
  WHERE    6371 * acos (
        cos ( radians('$latitude') )
        * cos( radians( lat ) )
        * cos( radians( lng ) - radians('$longitude') )
        + sin ( radians('$latitude') )
        * sin( radians( lat ) ) )< 12
  ORDER BY distance ASC");



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pola Jooq LocalDateTime używają strefy czasowej systemu zamiast strefy czasowej sesji

  2. Jak zwiększyć licznik i zwrócić wartość w MySQL?

  3. Wykonywanie lewego sprzężenia w tabeli wiele-do-wielu z warunkami

  4. Jak mogę policzyć liczbę wierszy zwróconych przez zapytanie MySQL?

  5. MySQL wybiera maksymalny rekord w grupie według