Was sind für eine große SAAS-Anwendung (unterstützt durch PostgreSql 9.4) mit über 300.000 Konten (und wachsenden Konten) die Vor- und Nachteile der Verwendung eines Schemas pro Konto zum Partitionieren der Daten im Vergleich zum Einfügen aller Daten in ein Schema und Verwenden von Fremdschlüsseln für Partitionieren Sie es in den Abfragen?
Ich weiß, dass pg_dump in der Vergangenheit bei der Arbeit mit vielen Schemata schmerzhaft langsam war, aber nicht sicher, ob dies heute der Fall ist. Mir ist auch bewusst, dass jede Änderung in der Datenbankstruktur für alle Schemas vorgenommen werden muss. Und ich weiß, dass es auf der positiven Seite einfach ist, ein Schema von einem physischen Server auf einen anderen zu verschieben und ein Schema aus der Sicherung wiederherzustellen, ganz zu schweigen davon, dass es sinnvoll ist, Daten auf diese Weise zu partitionieren.
Was sind die Vor- und Nachteile, die mir fehlen?
Antworten:
Offensichtlich haben Sie es in jedem Benutzerschema mit denselben Tabellen zu tun. Haben Sie dafür eine Vererbung in Betracht gezogen ? Es kann Ihnen für einige Anwendungsfälle das Beste aus beiden Welten bieten. Es gibt auch einige Einschränkungen . Sie können für jeden Benutzer ein eigenes Schema erstellen und trotzdem alle Benutzertabellen gleichzeitig sehr bequem durchsuchen.
Verbunden:
Abgesehen davon muss zumindest das Gewähren / Widerrufen von Berechtigungen erwähnt werden, was mit separaten Schemas viel einfacher ist.
quelle