Hi,
ich habe eine Reihe an Datensätzen in einer MySQL-Datenbank, die ich für A* zur Wegsuche über Orte nutzen muss. Nun suche ich eine optimale Variante bezüglich der Geschwindigkeit.
Variante 1 (so mache ich es momentan): Ich baue einmalig eine Verbindung zur DB auf. Dann rufe ich ständig die Nachbarn eines Ortes aus der DB ab und dann wieder die Nachbarn der Orte usw., bis ich am Ziel bin. Wer A* kennt, weiß wie es ungefähr komplett funktioniert. Nun sind das ständige Datenbankabfragen, die doch etwas Zeit brauchen.
Variante 2: Ich baue einmalig eine Verbindung zur DB auf. Danach lese ich alle Orte aus und verstaue sie in einer HashMap/TreeMap. Schlüssel die ID des Ortes, Wert ein Objekt des Ortes. In der Suche greife ich dann nicht mehr auf die Datenbank zu, sondern auf die HashMap/TreeMap.
Problem: Ich kann es bis jetzt nur mit ca. 20 Datensätzen testen und weiß daher nicht, wie es sich bei "großen" Datenmengen (20.000 Datensätze) verhält. Hat jmd. Erfahrung im Vergleich von HashMap/TreeMap und Datenbanken?
Danke.
VG
ich habe eine Reihe an Datensätzen in einer MySQL-Datenbank, die ich für A* zur Wegsuche über Orte nutzen muss. Nun suche ich eine optimale Variante bezüglich der Geschwindigkeit.
Variante 1 (so mache ich es momentan): Ich baue einmalig eine Verbindung zur DB auf. Dann rufe ich ständig die Nachbarn eines Ortes aus der DB ab und dann wieder die Nachbarn der Orte usw., bis ich am Ziel bin. Wer A* kennt, weiß wie es ungefähr komplett funktioniert. Nun sind das ständige Datenbankabfragen, die doch etwas Zeit brauchen.
Variante 2: Ich baue einmalig eine Verbindung zur DB auf. Danach lese ich alle Orte aus und verstaue sie in einer HashMap/TreeMap. Schlüssel die ID des Ortes, Wert ein Objekt des Ortes. In der Suche greife ich dann nicht mehr auf die Datenbank zu, sondern auf die HashMap/TreeMap.
Problem: Ich kann es bis jetzt nur mit ca. 20 Datensätzen testen und weiß daher nicht, wie es sich bei "großen" Datenmengen (20.000 Datensätze) verhält. Hat jmd. Erfahrung im Vergleich von HashMap/TreeMap und Datenbanken?
Danke.
VG