Daniel Thoma: Shell oder MySQL

Beitrag lesen

Hallo Kalle,

Ist dieses Problem ein Grund, dass eine Anwendung langsam ist?
Wenn ja, solltest Du erst noch genauer überlegen, warum das passiert.
Ist ein einzelner Suchvorgang zu langsam oder führst Du einfach sehr viele Zugriffe durch, was dann in der Summe zu langsam ist.
In letzterem Fall würde ich einfach die ganze Liste einmal einlesen und in einer Hashtabelle ablegen. So lang der Speicher reicht (was bei einigen Tausend einträgen kein Problem ist), wirst Du kaum etwas schnelleres finden.
Wenn das Problem durch wenige oder einen einzelnen Zugriff entsteht, musst Du sehr viele Einträge haben. Dann ist komplettes Einlesen natürlich keine Option. Hier würde sich eine Datenbank als erster Schritt anbieten, diese organisiert die Daten schon auf der Platte so, dass sie sie nicht komplett lesen muss, um einen Eintrag zu finden.
Alternativ kann man für so einen einfachen Fall auch selber ein entsprechendes Verfahren implementieren.
Deine Daten sind sehr einfach strukturiert (nur kurze, gleichlange Einträge). Da sollte es sehr einfach sein, die Datei als Hash-Tabelle aufzubauen. Dann kannst Du die Position einer gesuchten ID direkt berechnen, an die Stelle in der Datei springen und dort nur einen bzw. einige wenige Werte einlesen. Es gibt aber vermutlich keinen Grund, das selbst zu machen, außer Interesse ;-)

Grüße

Daniel