Ich muss eine MySQL-Umgebung einrichten, die das Hinzufügen vieler eindeutiger Datenbanken im Laufe der Zeit unterstützt (eigentlich tausende). Ich gehe davon aus, dass ich irgendwann mit dem Hinzufügen von MySQL-Servern beginnen muss und möchte, dass meine Umgebung im Vorfeld auf den Fall vorbereitet wird, um den Übergang zu einem 2., 3., 100. Server einfach zu machen.Einrichten mehrerer MySQL-Datenbanken mit Skalierbarkeitsoptionen
Und nur um es interessant zu machen, wäre es sehr praktisch, wenn die Lösung so modelliert wurde, dass die Anwendung, die die Datenbanken abfragt, alle Abfragen an eine einzige Adresse sendet und ein Ergebnis erhält. Es sollte sich nicht über die Anzahl und den Speicherort der Server im Klaren sein. Der Datenbankname ist eindeutig und kann verwendet werden, um herauszufinden, welcher Server die Datenbank enthält.
Ich habe einige Nachforschungen angestellt, und MySQL Proxy erscheint als der Hauptkandidat, aber ich konnte nichts Bestimmtes darüber herausfinden, wie es funktioniert, wie oben beschrieben.
Jeder?
lässt sich sagen, dass ich keine Datenbank-Abfragen durchführen muss. Jede Datenbank ist eine eigene Insel, genau das ist: a. Die Anwendung muss in der Lage sein, alle Datenbanken von einem einzigen Punkt abzufragen, und b. Ich muss neue Datenbanken nach Belieben hinzufügen können. Ändert das das Bild? – Omer
oh, und danke für die sehr schnelle und detaillierte Antwort. – Omer
Die einfache Lösung besteht darin, einen Wrapper für Ihr aktuelles Datenbankverbindungsmodul zu schreiben und einen Pool von Konnektoren zu verwalten. Wenn Sie nach einem db-Handle fragen, geben Sie ihm die Möglichkeit, die richtige db zu finden. Dies funktioniert für eine bestimmte Anzahl von dbs und eine statische Zuordnung; Es gibt offensichtliche Probleme mit dynamischen Zuordnungen. Und ich fragte nicht wirklich, ob Sie Cross-DB-Abfragen benötigen; Ich habe Ihnen gesagt, dass wenn Ihr Projekt wächst, Sie Cross-DB-Abfragen benötigen. Vielleicht nicht viele, aber du wirst sie brauchen. – SquareCog