Frage

Gibt es DBs für Java, die in einem eingebetteten Modus ausgeführt werden können, wobei einige Tische in Memory gespeichert werden, während andere von der Festplatte geladen werden? H2 und Javadb scheinen die beiden Anführer für Java DBS zu sein, und ich weiß, dass sie beide einen In-Memory-Modus haben, aber lassen Sie Sie die gesamte DB in den Speicher laden oder können Sie sich für eine Tabelle-für-Tabelle-Basis entscheiden?

War es hilfreich?

Lösung

Dies ist die auf der HSQL -Website erwähnte FAQ zwischen zwischengespeicherten Tabellen.

• Speichert HSQLDB alle Daten im Speicher? Läuft der Speicher nicht als Ergebnis aus?

• Es speichert alle Daten im Speicher nur, wenn Sie möchten. Standardmäßig erstellen Sie die Tabelle in einer Speichertabelle, da dies der beste Typ für kleinere Tabellen ist. Verwenden Sie für größere Tabellen eine zwischengespeicherte Tabelle erstellen und passen Sie die Cache -Größe an, um die Anforderungen an die Speicherverwendung zu erfüllen (nur 8 MB oder so). Siehe Kapitel des Systemmanagement- und Bereitstellungsproblems des Leitfadens. Es gibt keine einfache Regel und keine Auferlegung von HSQLDB, da maximale Flexibilität nur ein paar Einstellungen verwendet wird. Eine beliebte Verwendung von HSQLDB ist für OLAP-, ETL- und Data Mining -Anwendungen, bei denen riesige Java -Speicherzuweisungen verwendet werden, um Millionen von Datenzeilen im Speicher zu halten.

Ich denke, zwischengespeicherter Tisch ist bereits mächtig genug, um Ihre Bedürfnisse zu erfüllen.

Aus http://hsqldb.org/web/hsqlfaq.html

Vergleich zwischen Cache -Tabelle und Speichertabelle

Speichertabellen und zwischengespeicherte Tabellen werden im Allgemeinen für die Datenspeicherung verwendet. Der Unterschied zwischen den beiden ist wie folgt:

Die Daten für alle Speichertabellen werden aus der *.Script -Datei gelesen, wenn die Datenbank gestartet und im Speicher gespeichert wird. Im Gegensatz dazu werden die Daten für zwischengespeicherte Tabellen erst dann in den Speicher gelesen, wenn die Tabelle zugegriffen wird. Darüber hinaus wird nur ein Teil der Daten für jede zwischengespeicherte Tabelle im Speicher gehalten, wodurch Tabellen mit mehr Daten als im Speicher gehalten werden können.

Wenn die Datenbank normal heruntergefahren wird, werden alle Daten für Speichertabellen auf die Festplatte geschrieben. Im Vergleich dazu werden die Daten in geänderten Gegabetabellen während des Betriebs und beim Herunterfahren ausgeschrieben.

Die Größe und Kapazität des Datencache für alle zwischengespeicherten Tabellen ist konfigurierbar. Dies ermöglicht es, alle Daten in zwischengespeicherten Tabellen im Speicher zwischengespeichert zu werden. In diesem Fall ist die Zugangsgeschwindigkeit gut, aber etwas langsamer als Speichertabellen.

Für normale Anwendungen wird empfohlen, Speichertabellen für kleine Datenmengen verwendet zu werden, sodass zwischengespeicherte Tabellen für große Datensätze zurückgelassen werden. Für spezielle Anwendungen, in denen die Geschwindigkeit von größter Bedeutung ist und eine große Menge kostenloser Speicher verfügbar ist, können auch für große Tabellen Speichertabellen verwendet werden.

Es scheint, dass diese Funktion noch nicht von H2 und Derby (Javadb) unterstützt wird. Korrigieren Sie mich, wenn es nicht die Tatsache ist.

Andere Tipps

Die meisten in Memory-Datenbanken (wie z. Hsqldb die Fähigkeit haben, einige (oder alle) Daten zur Festplatte zu leiten. Normalerweise ist es niedrig genug, so dass es für den Programmierer transparent ist, aber sicherlich konfigurierbar ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top