Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Leistung der Standortsuche in PHP mit einer großen Datenbank optimieren?

Wie kann ich die Leistung der Standortsuche in PHP mit einer großen Datenbank optimieren?

Linda Hamilton
Freigeben: 2024-11-09 06:46:02
Original
543 Leute haben es durchsucht

How Can I Optimize Location Proximity Search Performance in PHP with a Large Database?

Optimierung von Entfernungsberechnungen für die Suche nach Standortnähe

Problem:

Ihr PHP-Skript berechnet Entfernungen zwischen einem bestimmten Standort und zahlreichen Unternehmensstandorten in einer Datenbank mithilfe der Haversine-Formel. Mit zunehmender Größe Ihrer Datenbank (5.000 Unternehmen) machen Sie sich jedoch Sorgen um die Leistung.

Lösung: Nutzen Sie die datenbankbasierte Entfernungsberechnung

Zur deutlichen Verbesserung Um die Effizienz Ihrer Suche zu verbessern, sollten Sie die Verwendung einer Datenbankabfrage in Betracht ziehen, die die Haversine-Formel direkt einbezieht. Dieser Ansatz umgeht die Notwendigkeit, alle Geschäftsdaten abzurufen und Entfernungsberechnungen in Ihrem PHP-Skript durchzuführen. So geht's:

Mit der HAVING-Klausel von MySQL können Sie einen Distanzfilter auf die Ergebnismenge anwenden:

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
  * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) 
  * sin( radians( lat ) ) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;
Nach dem Login kopieren

In dieser Abfrage:

  • 37 und - 122 sind beispielhafte Breiten- und Längengrade für den Referenzstandort.
  • Die HAVING-Klausel filtert Ergebnisse basierend auf der berechneten Entfernung Spalte, um sicherzustellen, dass nur Standorte innerhalb eines Radius von 25 Einheiten zurückgegeben werden.
  • Die ORDER BY-Klausel sortiert die Ergebnisse in aufsteigender Reihenfolge der Entfernung.

Durch Ausführen dieser Berechnung in der Datenbank Reduzieren Sie die Datenmenge, die zur weiteren Verarbeitung an Ihr PHP-Skript übertragen werden muss, drastisch. Dieser Ansatz verbessert erheblich die Leistung, insbesondere bei großen Datenmengen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Leistung der Standortsuche in PHP mit einer großen Datenbank optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage