Guten Morgen!
Folgendes Problem: Ich habe mehrere wachsende Liste von Strings (im Moment je 5000 Einträge, Wortlänge 5 - 10 Zeichen), bei denen ich als einzige wesentliche Operation einen Zugriff via des Indexes machen möchte.
Bislang sind die Daten in TXT-Dateien gespeichert und werden dann einmal gelesen und im Speicher gehalten, das ist aber unschön aus mehreren Gründen: Das Lesen der Dateien dauert verhältnismässig lange, im Moment sind das bei mir 5 Dateien und 6 Sekunden. Der Zugriff danach ist zwar schnell, aber alles in allem muss ich solche Datenmengen ja nicht im Zwischenspeicher halten, wenn ich eigentlich nur einen zufälligen Wert abfragen möchte.
Für mich klingt das wie ein typischer Fall für eine (sehr schlanke) Datenbank, allerdings möchte ich 1 Sekunde Lesezugriff der Datei nicht gegen 10 Sekunden Datenbankinitialisierung tauschen. (Wobei sich das andererseits bei einer wachsenden Datenmenge rechnen würde.) Es ist außerdem einigermaßen wichtig, dass die Datenbank innerhalb des JARs liegt, und das habe ich so noch nie gemacht und vermute es wird so nicht gehen. Und dann wäre natürlich die Frage, ob es das ganze Programm nicht zu sehr aufblähen würde, wegen der zusätzlichen JARs und der DB.
Ich möchte also alles in allem die richtige Mischung aus Initialisierungszeit und Zugriffszeit finden, und dabei eine insgesamt möglichst kleine Anwendung erstellen. Wie würdet ihr das machen?
Liebe Grüße.
Folgendes Problem: Ich habe mehrere wachsende Liste von Strings (im Moment je 5000 Einträge, Wortlänge 5 - 10 Zeichen), bei denen ich als einzige wesentliche Operation einen Zugriff via des Indexes machen möchte.
Bislang sind die Daten in TXT-Dateien gespeichert und werden dann einmal gelesen und im Speicher gehalten, das ist aber unschön aus mehreren Gründen: Das Lesen der Dateien dauert verhältnismässig lange, im Moment sind das bei mir 5 Dateien und 6 Sekunden. Der Zugriff danach ist zwar schnell, aber alles in allem muss ich solche Datenmengen ja nicht im Zwischenspeicher halten, wenn ich eigentlich nur einen zufälligen Wert abfragen möchte.
Für mich klingt das wie ein typischer Fall für eine (sehr schlanke) Datenbank, allerdings möchte ich 1 Sekunde Lesezugriff der Datei nicht gegen 10 Sekunden Datenbankinitialisierung tauschen. (Wobei sich das andererseits bei einer wachsenden Datenmenge rechnen würde.) Es ist außerdem einigermaßen wichtig, dass die Datenbank innerhalb des JARs liegt, und das habe ich so noch nie gemacht und vermute es wird so nicht gehen. Und dann wäre natürlich die Frage, ob es das ganze Programm nicht zu sehr aufblähen würde, wegen der zusätzlichen JARs und der DB.
Ich möchte also alles in allem die richtige Mischung aus Initialisierungszeit und Zugriffszeit finden, und dabei eine insgesamt möglichst kleine Anwendung erstellen. Wie würdet ihr das machen?
Liebe Grüße.