2010-12-17 4 views
1

Wir entwickeln derzeit In Java/Hibernate Multiuser-Anwendung mit postgreSQL. Und wir migrieren unsere Datenbank auf mehrere Schemas (ein Schema als eine Firma); Jetzt sah ich, dass dieser Nachteil Datenbankgröße immer mehr wird, obwohl dort die gleichen Daten: vor der Migration gab es 700MB; nach ungefähr 2GB.Vorteile der Verwendung mehrerer Schemas?

Aus diesem Grund sind wir mit Backup-/Wiederherstellungsproblemen konfrontiert, die viel mehr erfordern als bisher.

F: es kann vermieden werden, Zeit/Platz zu verschwenden, um eine schnellere Zustellbarkeit zu erreichen? Oder machen wir etwas falsch?

+0

Schema ist nur Namespace, warum verdoppelt es Ihre DB-Größe mehr als? Vervielfältigen Sie alle Daten? Und wenn ja, würde das deine DB nicht total denormalisieren. –

+0

Ich bin sicher, es gibt keine doppelten Daten, wir sind es überprüft.Aber es gibt ein öffentliches Schema und private Schemas für jede Firma mit den gleichen Tabellen –

Antwort

1

Sie müssen einen einfachen Testfall erstellen, der das anzeigt, um es wirklich zu untersuchen. Wir verwenden buchstäblich mehr als tausend Schemata, um mehrere Wikis auf einem Datenbankserver zu implementieren, und es funktioniert ziemlich gut.

Und ich wünschte, ich hätte eine db, die nur 2 GB Backup heute war. :)

+1

Wenn ich 100 neue leere Schemas (mit 312 Tabellen) erstellen, Größe der postgresql Daten Ordnergröße um 1,2 GB erhöht. Ist das nicht seltsam? –

1

Sie haben nicht geschrieben, was Sie wirklich getan haben.

Ich nehme an, Sie haben einige gemeinsame Daten (z. B. Wörterbücher), die Sie auch kopiert haben. Wenn diese Daten für jede Firma üblich sind (nicht angepasst), sollten Sie sie nur in einem separaten Schema aufbewahren.

+0

Ja, wir haben das öffentliche Schema zum Speichern von Konstanten und Referenzen getrennt.Für eine Anmeldung (neue Firma) wird ein privates Schema ohne Daten erstellt. –