M
mdmc
Neues Mitglied
- 0
Hallo zusammen,
ich habe folgendes Problem:
Ist-Zustand:
Meine App schreibt die Google Geo-koordinaten (nur die Koordinaten alle 500 Meter) einer vorher gewählten Route in eine MySQL Datenbank.
Annahme:
Es sind aktuell die Koordinaten von sehr vielen Routen in der Datenbank eingetragen (50.000+ Koordinaten) .
Was ich möchte:
Ich möchte performant überprüfen, ob vorher gegebene Koordinaten im Radius von irgendeiner oder auch mehreren dieser Routen liegen.
Wie ich es aktuell löse:
Ich habe eine abfrage in etwa so: "Select RoutenID Von Tabelle(Routen) where Radius(meineGesuchteKoordinate) = WAHR"
Problem:
Ich Iteriere mit jeder abfrage durch die Kompette Datenbank und Checke ob meine gegebe Koordinate im Radius der gerade selectierten Koordinate lieget.
Ich denke das ist bei einer riesigen Anzahl von Koordinaten nicht gerade sehr performant.
Frage:
Welche Möglichkeiten habe ich, um nicht jedesmal die gesamte Datenbank zu durchsuchen ?
Ich dachte daran weitere Informationen jeder Koordinate einer Route (PLZ/Ort ...) mit in die Datenbank zu schreiben, um dann zb nur den Teil der Tabelle zu durchsuchen, der die gleiche PLZ hat wie die PLZ der gesuchten Koordinate ?
Wäre das eine adequate Lösung ? Was habe ich noch für Möglichkeiten.
Ich hoffe mir kann jemand helfen.
Vielen Dank,
Grüße
ich habe folgendes Problem:
Ist-Zustand:
Meine App schreibt die Google Geo-koordinaten (nur die Koordinaten alle 500 Meter) einer vorher gewählten Route in eine MySQL Datenbank.
Annahme:
Es sind aktuell die Koordinaten von sehr vielen Routen in der Datenbank eingetragen (50.000+ Koordinaten) .
Was ich möchte:
Ich möchte performant überprüfen, ob vorher gegebene Koordinaten im Radius von irgendeiner oder auch mehreren dieser Routen liegen.
Wie ich es aktuell löse:
Ich habe eine abfrage in etwa so: "Select RoutenID Von Tabelle(Routen) where Radius(meineGesuchteKoordinate) = WAHR"
Problem:
Ich Iteriere mit jeder abfrage durch die Kompette Datenbank und Checke ob meine gegebe Koordinate im Radius der gerade selectierten Koordinate lieget.
Ich denke das ist bei einer riesigen Anzahl von Koordinaten nicht gerade sehr performant.
Frage:
Welche Möglichkeiten habe ich, um nicht jedesmal die gesamte Datenbank zu durchsuchen ?
Ich dachte daran weitere Informationen jeder Koordinate einer Route (PLZ/Ort ...) mit in die Datenbank zu schreiben, um dann zb nur den Teil der Tabelle zu durchsuchen, der die gleiche PLZ hat wie die PLZ der gesuchten Koordinate ?
Wäre das eine adequate Lösung ? Was habe ich noch für Möglichkeiten.
Ich hoffe mir kann jemand helfen.
Vielen Dank,
Grüße