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

wie man eine geolokalisierungsdatenbank in mysql für die euklidische entfernungssuche/abfrage optimiert

Sie werden es schwer haben, für diese Art von Abfrage zu optimieren. Eine bessere Option wäre die Berechnung eines Begrenzungsrahmens aus (x,y) Koordinaten und delta übergeben. Fragen Sie dann nach Orten ab, an denen die Koordinaten in dieses Feld fallen. Diese Abfrage wäre viel einfacher und könnte alle Indizes verwenden, die Sie möglicherweise für die x- und y-Felder haben.

Natürlich sind die Ergebnisse dieser Abfrage nicht so genau, da es sich um einen Begrenzungsrahmen und nicht um einen Kreis handelt. Wenn Sie bessere Ergebnisse wünschen, können Sie die Ergebnisse aus der Bounding-Box-Abfrage nehmen und dann die langsamere euklidische Methode verwenden, um diejenigen herauszufiltern, die nicht in den Kreis fallen.