sql >> Database >  >> RDS >> Mysql

Hoe de Haversine-formule in mysql te versnellen?

waarom gebruik je HAVING ... vanwege het feit dat je query geen geaggregeerde functie gebruikt, zodat je kunt filteren waar (maar waar niet, moet je de code herhalen) en voor prestaties met waar vermijd een volledige scan voor het behalen van de resultaat voor het hebben van evaluatie

  $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 bevat nul rijen bij gebruik van COUNT met GROUP BY

  2. Doctrine Query Language krijgt Max/Laatste rij per groep

  3. Aansluiten Snowflake DB &IRI Workbench

  4. Null-referentie van MySQL-stuurprogrammamodule van taskpane.js een Microsoft Office-invoegtoepassing