Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann man die SQL-Abfrage mit der Berechnung der Entfernung nach Längen- und Breitengrad optimieren?

Hier sind ein paar Ideen, von denen einige je nach Ihrer genauen Situation möglicherweise nicht zutreffen.

  1. Sie könnten die Breiten- und Längengrade in Bogenmaß umwandeln und dies auch in der Zeile speichern. Dies würde die Kosten für diese Berechnungen einsparen (tatsächlich würden die Kosten einmalig beim Speichern der Daten anfallen).
  2. Wenn Ihre Tabelle sehr groß ist, können Sie anstelle der Haversince-Formel eine einfache lineare Entfernungsberechnung verwenden, um die Ergebnisse einzuschränken, auf die Sie die Haversince-Formel anwenden.
  3. Wenn Sie andere Daten in der Tabelle haben, die als guter erster Filter dienen würden (Land/Region/usw.), könnten Sie diese zuerst anwenden.
  4. Sie können Ihre Verknüpfungen neu anordnen, sodass sie nach dem Entfernungsfilter angewendet werden, sodass Ihnen keine Kosten für die Verknüpfung mit Daten entstehen, die nicht qualifiziert sind.