PostgreSQL: Ist es besser, verwenden Sie mehrere Datenbanken mit einem schema oder einer Datenbank mit mehreren Schemata?

Nach dieser Kommentar auf eine meiner Frage, ich bin am überlegen ob es besser ist, mit einer Datenbank mit X-Schemata oder Umgekehrt.

Meine situation: ich entwickle eine web-Applikation, wo, wenn die Leute registrieren, erstelle ich (eigentlich) eine Datenbank (Nein, es ist nicht ein Soziales Netzwerk: jeder muss Zugang zu seinen eigenen Daten und sehen nie die Daten des anderen Benutzers).

Das ist der Weg, den ich in der vorherigen version verwendet meine Anwendung (die laufen immer noch auf MySQL): über die Plesk-API, für jede Anmeldung, ich weiß:

  1. Erstellen Sie einen Datenbank-Benutzer mit eingeschränkten rechten;
  2. Erstellen Sie eine Datenbank zugegriffen werden kann, nur durch die bisher erstellten user und der superuser (für die Wartung)
  3. Die Datenbank füllen

Nun, ich werde tun müssen, um das gleiche mit PostgreSQL (das Projekt wird immer reifer und MySQL... nicht erfüllen alle Bedürfnisse).

Brauche ich, um alle Datenbanken/schemas unabhängige sicherungen: pg_dump funktioniert perfekt in beide Richtungen, und das gleiche für die Benutzer konfiguriert werden können, um den Zugriff nur einem schema oder einer Datenbank.

So, vorausgesetzt, Sie sind erfahrene PostgreSQL-Benutzer als mir, was Sie denken, ist die beste Lösung für meine situation, und warum?

Wird es performance-Unterschiede, die mit $x-Datenbank anstelle von $x schemas? Und was die Lösung sein wird, besser zu pflegen in die Zukunft (Zuverlässigkeit)?

Alle meine Datenbanken/schemas wird immer haben die gleiche Struktur!

Für die sicherungen-Problem (mit pg_dump), ist vielleicht besser mit einer Datenbank und viele schemas, dumping alle Schemata auf einmal: die Wiederherstellung wird ganz einfach das laden der Haupt-dump in eine Entwicklungs-Maschine und dann dump und restore einfach nur das schema benötigt: es gibt einen zusätzlichen Schritt, aber verwirft alle das schema scheint schneller als dumping Sie eins nach dem anderen.

UPDATE 2012

Gut, die Anwendung, die Struktur und das design so stark geändert in den letzten zwei Jahren. Ich bin immer noch mit der one db with many schemas Ansatz, aber noch habe ich eine Datenbank für jede version meiner Anwendung:

Db myapp_01
    \_ my_customer_foo_schema
    \_ my_customer_bar_schema
Db myapp_02
    \_ my_customer_foo_schema
    \_ my_customer_bar_schema

Für backups, ich bin dumping jede Datenbank regelmäßig, und bewegen Sie die sicherungen auf dem Entwicklungs-server.

Ich bin auch mit der PITR/WAL-backup aber, wie ich schon sagte, es ist nicht wahrscheinlich, werde ich wiederherstellen müssen alle Datenbank - auf einmal... also wird es wohl entlassen werden dieses Jahr (in meiner situation nicht der beste Ansatz ist).

Der man-db-viele-schema-Ansatz funktionierte sehr gut für mich, da nun, auch wenn die Anwendung Struktur völlig verändert:

Fast hätte ich es vergessen: alle meine Datenbanken/schemas wird immer haben die gleiche Struktur!

...nun, jedes schema hat seine eigene Struktur, die sich dynamisch ändern die Reaktion auf Benutzer-Datenfluss.

  • "alle meine Datenbanken/schemas wird immer die gleiche Struktur!" meinst du, Sie haben alle die gleiche Struktur? Oder noch nie?
  • Sorry, ja, Sie haben alle die gleiche Struktur für immer: wenn ich ein zu ändern, die ich ändern werde sind alle von Ihnen 😉
  • Wenn Sie über 1000 Kunden, das bedeutet, dass Sie haben, um update-1000-schema?
  • ja, aber ich update nur die Tabellen-Struktur, nicht die Daten.
  • So, was haben Sie in gehen für schließlich? Eine Frage, obwohl, obwohl die Leistung von Abfragen, etc. gesteuert werden kann mit tablespaces, schemas, die in einem vergleichbaren Leistung von multi-db-vs multi-schema, eine Auswirkung auf die WAL-logs???
  • gut, das design der Applikation wurde radikal geändert in der Zeit... lassen Sie mich update meine Frage mit ein paar details
  • Wie garantieren Sie die Sicherheit zwischen zwei schemas? Eine DB-Verbindung kann die Aktualisierung mehrere Schemas - dies ist ein Segen und kahl wie gut

InformationsquelleAutor Strae | 2009-07-20
Schreibe einen Kommentar