2015-01-19 7 views
7

Ich frage mich, wann es eine gute Idee wäre, eine einzelne Datenbank gegen eine Datenbank mit mehreren Objektspeichern zu haben. Ich habe die meisten Tutorials im Web gelesen und die Spezifikation für indexedDB gelesen, konnte aber kein gutes Beispiel finden, um diese verschiedenen Konzepte zu vergleichen. Hat jemand ein konkretes Beispiel (ein Designmodell, das mehrere Objektspeicher und/oder Code verwendet) für diese Art von Sache?IndexedDB - ObjectStores vs mehrere Datenbanken vs Indizes?

Antwort

9

Solange zwischen Objektspeichern keine transaktionsübergreifende Manipulation stattfindet, können Sie sie in mehrere Datenbanken aufteilen. Ich bevorzuge die Verwendung einer separaten Datenbank, so viele wie möglich, so dass Schemaänderungen in einer kleineren Objektspeicherdatenbank einfacher sind.

In seltenen Situationen verwende ich sogar separate Datenbank, auch wenn Cross-Transaktion erforderlich ist. Diese Fälle befinden sich zwischen der Benutzereinstellungsdatenbank und der Anwendungsdatenbank. Inkonsistenz zwischen Benutzereinstellung und Anwendung ist in Ordnung, da die Wahrheit in der Benutzereinstellung liegt und temporäre Inkonsistenz keine Rolle spielt.

Beachten Sie, dass die Eröffnung einer Datenbank mit hohen Kosten verbunden ist. Aber sobald es geöffnet ist, gibt es keinen Speicherverbrauch für die Verbindung. Die Anzahl der Datenbanken ist unbegrenzt.

Mehrere Datenbanken werden haben höhere Thoughput als einzelne Datenbank mit mehreren Objekt speichert, seit Einführung von Firefox sperren ganze Datenbank auf jede Schreibvorgang.