sql >> Databáze >  >> RDS >> Mysql

Jak urychlit vzorec Haversine v mysql?

proč meziročně používáte HAVING ...vzhledem k tomu, že váš dotaz nepoužívá agregovanou funkci, takže můžete filtrovat pomocí where (ale kde nepoužívejte, musíte kód zopakovat) a pro výkon pomocí kde se vyhněte úplnému skenování pro opětovné vytvoření výsledek pro hodnocení

  $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. MySQL ::Vyberte z řetězce odděleného čárkou

  2. Přístup k databázím kontejneru docker mysql

  3. Neprimární cizí klíče v Django

  4. Vytvářejte, nelámejte, výkon serveru SQL