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

Hvordan fremskynder man Haversine-formlen i mysql?

hvorfor du bruger HAVING ... på grund af det faktum, at din forespørgsel ikke bruger en aggregeret funktion, så du kan filtrere ved at bruge hvor (men hvor du ikke bruger, skal du gentage koden) og for ydeevne ved hjælp af hvor undgå en fuld scanning for at se resultat for at have evaluering

  $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. Gælder grænsen for det maksimale antal SQL join-tabeller for hele forespørgslen, eller tælles underforespørgsler separat?

  2. hvilken ip AWS lambda funktion bruger?

  3. Opsamling af tæller fra en SQL-forespørgsel

  4. Forstå SQL-datatyper – alt hvad du behøver at vide om SQL-datatyper