Bei der Entwicklung einer Multicustomer-Anwendung planen wir, für jeden Kunden eine andere Datenbank zu verwenden. Es könnten aber mehr als 1000 Kunden (Anwendungen) sein.
Wird PostgreSQL problemlos damit umgehen?
Hat jemand etwas ähnliches versucht?
Hinweis: 35 Tabellen für jede Datenbank mit durchschnittlich bis zu 3000 Datensätzen für jede Datenbank.
quelle
Klingt aus Managementsicht nach einer chaotischen Sache. Wie wollen Sie so viele Datenbanken sichern? mit einem Skript, das jeden durchläuft?
Wenn Sie keinen guten Grund haben, warum nicht einfach eine Datenbank haben, in der die Struktur so gestaltet ist, dass alle Daten mit einer Kunden-ID verknüpft werden. Fügen Sie basierend auf diesem Feld Indizes / Fremdschlüssel / Primärschlüssel hinzu, um die Datenintegrität sicherzustellen.
Dann brauchen Sie nur noch eine where-Klausel in all Ihren Abfragen, um auf nur eine Kunden-ID zuzugreifen. Dies ist viel einfacher zu warten und ebenso einfach zu entwickeln (in beiden Fällen müssen Sie die Kundenidentifikation berücksichtigen).
quelle
search_path
keine Schemata voranstellen, da dies für Sie erledigt wird.Es gibt Leute, die dies tun, insbesondere für das Hosting von gemeinsam genutzten Servern.
Wenn man die Themen hier durchdenkt, gibt es kein kostenloses Mittagessen. Sie könnten dies wahrscheinlich mit Schemata auf anwendungstransparente Weise tun. Dann gelangen Sie jedoch zu Tausenden von Schemata und Zehntausenden von Tabellen, was zusätzliche Probleme aufwirft.
Ich denke im Großen und Ganzen, der Multiple-DB-Ansatz ist angesichts Ihrer Kommentare am vernünftigsten.
Management (wie Backups) wird interessant. Ich würde auch denken, dass die Verbindungen zur Datenbank irgendwann länger dauern werden. Wenn Sie pg_hba.conf verwenden, um den Zugriff einzuschränken (was Sie tun sollten), wird dies ebenfalls zu Kopfschmerzen und Sie möchten wahrscheinlich eine Lösung erstellen, um diese Datei für Sie zu generieren .....
quelle
Ich hoffe , dass diese Verbindung besser ist zu lesen: 10.000 Datenbanken auf einem PostgreSQL Cluster von Jon Jensen, 2008.
Ein Auszug:
quelle