In diesem Artikel wird hauptsächlich die datenbankübergreifende Zuordnungsmethode Abfrage in MySQL vorgestellt. Freunde, die sie benötigen, können sich auf das
Geschäftsszenario beziehen: Zuordnung zwischen verschiedenen Datenbanken Tabellenabfrage
Die zuzuordnenden Tabellen sind beispielsweise: Tabelle A in Datenbank A auf Maschine A && Tabelle B in Datenbank B auf Maschine B.
In diesem Fall ist es unmöglich, „select A.id,B.id from A left join B on ~~~;“ auszuführen, aber die Geschäftsanforderungen sind unveränderlich Das Datenbankdesign ist unveränderlich, was nervig ist. .
Lösung: Erstellen Sie eine Tabelle B in Datenbank A auf Maschine A. . .
Natürlich mache ich keine Witze. Wir verwenden eine Tabellenerstellungsmethode, die auf der föderierten Engine von MySQL basiert.
Beispiel für eine Tabellenerstellungsanweisung:
CREATE TABLE `table_name`(......) ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'
Voraussetzung: Ihr MySQL muss die Verbund-Engine unterstützen (führen Sie Show Engines aus; Sie können sehen, ob es unterstützt wird).
Wenn es eine FEDERATED-Engine gibt, aber der Support NEIN ist, bedeutet das, dass Ihr MySQL diese Engine installiert , aber nicht aktiviert hat, fahren Sie mit dem Ende fort der Datei my.cnf Fügen Sie eine Zeile „federated“ hinzu und starten Sie MySQL neu Um Ihren Betrieb und Ihre Wartung zu finden, ist die nächste Aktion relativ umfangreich und ich weiß nicht, wie sie ausgeführt werden soll.
Erklärung: Die über die FEDERATED-Engine erstellte Tabelle verfügt nur über eine lokale Tabellendefinitionsdatei , und die Datendatei ist in der Remote-Datenbank vorhanden. Diese Engine kann Remote-Datenzugriffsfunktionen ähnlich wie DBLINK unter Oracle implementieren. Das heißt, diese Tabellenerstellungsmethode erstellt nur eine Tabellenstrukturdatei von Tabelle B in Datenbank A. Der
Index, die Daten und andere Dateien der Tabelle befinden sich immer noch in Datenbank B auf Maschine B Dies entspricht lediglich einer Verknüpfung zu Tabelle B, die in Datenbank A erstellt wird. Dadurch tut das Ei nicht mehr weh. .
Ein paar Punkte, die Sie beachten sollten:1. Die lokale Tabellenstruktur muss genau mit der Remote-Tabelle übereinstimmen.
2. Die Remote-Datenbank ist derzeit auf MySQL beschränkt
3 Transaktionen werden nicht unterstützt
4. Zusätzliche Kommentare von anderen Internetnutzern:
Um die Remote-Logintoken-Tabelle von 5.12 zu verwenden, müssen Sie FEDERATED nur selbst aktivieren. Es ist nicht notwendig, es in 5.12 zu aktivierenDas obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode der datenbankübergreifenden Abfrage in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!