Ich bin mir nicht sicher, ob ich Java Collections oder irgendeine In-Memory-DB (H2 oder HSQLDB - sie sind wahrscheinlich die schnellsten) verwenden. Ich brauche eine gute Leistung Ergebnisse - es wird Hunderte von Objekten / Zeilen, keine JOIN oder komplexere Abfragen durchgeführt werden würde.
Ich denke wirklich über In-Memory-DB, wegen der begrenzten Größe von Java-Heap - die Objekte, mit denen ich arbeite, können ziemlich groß sein und auch es wird eine Menge von ihnen (Hunderte wie ich erwähnt)
Glauben Sie, dass es eine gute Idee ist, eine In-Memory-Datenbank für eine große Datenmenge zu verwenden?
Hunderte von 10 KB-Objekten sind immer noch nur ein paar MB. Halten Sie es einfach ist mein Vorschlag. Hunderttausende 1-KB-Objekte passen immer noch problemlos in eine 32-Bit-JVM.
Ich würde keine In-Memory-Datenbank verwenden, bis Sie sich mit den GBs der Daten beschäftigen. Wenn Sie Hunderte von GB haben, ist Ihre einzige Option, eine Datenbank irgendeiner Art zu verwenden.
Disclaimer: Ich benutze in Speicher-Datenbanken und habe sogar ein oder zwei geschrieben.
Versuchen Sie es mit Sammlungen. Wenn Sie dann ein Problem erkennen, können Sie noch swich. Es kommt darauf an, die Implementierung so zu abstrahieren, dass Ihre Algorithmen das eine oder das andere nicht erwarten. (Noch eine andere "früh-Optimierung ist böse" Tirade)
Wie andere gesagt haben, ist "hunderte" wirklich nicht viel, und jetzt klingt es so, als würden Sie sogar sagen, potentiell weniger als Hunderte. Wenn die Heap-Größe ein Problem ist, können Sie die JVM-Heap-Größe erhöhen
Tags und Links java database performance collections