MySQL Cross-Server Select Queries: Eine detaillierte Anleitung
Bei der Arbeit mit mehreren MySQL-Servern, die geografisch verteilt sind, besteht die Notwendigkeit von Cross- Es kommt zur Manipulation von Serverdaten. Ein solches Szenario ist die Anforderung, Daten aus einer Tabelle auf einem Server auszuwählen und in eine Tabelle auf einem anderen, meilenweit entfernten Server einzufügen.
Um dieser Herausforderung zu begegnen, bietet MySQL die Möglichkeit, SSH-Tunnel einzurichten, um die Sicherheit zu erleichtern Kommunikation zwischen Servern. Es ist jedoch wichtig zu beachten, dass der direkte Zugriff auf Tabellen über Server hinweg über SSH-Tunnel von MySQL nicht unterstützt wird.
Stattdessen bietet eine leistungsstarke Funktion namens Verbundtabellen eine elegante Lösung für dieses Problem. Mit föderierten Tabellen können Sie eine lokale Proxy-Tabelle erstellen, die eine Remote-Tabelle auf einem anderen Server darstellt. Dadurch können Sie Abfragen für die lokale Verbundtabelle ausführen, als ob die Remote-Tabelle physisch auf dem lokalen Server vorhanden wäre.
Verbundtabellen erstellen
So erstellen Sie eine Verbundtabelle , müssen Sie zunächst die Remote-Tabelle auf dem Server definieren, auf dem sie sich befindet. Sobald die Remote-Tabelle eingerichtet ist, können Sie mit der folgenden Syntax mit der Erstellung einer Verbundtabelle auf dem lokalen Server fortfahren:
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
In diesem Beispiel gibt das CONNECTION-Attribut die Details der Remote-Tabelle an, einschließlich der Datenbankname, Tabellenname, Benutzername und Passwort.
Serverübergreifende Abfragen ausführen
Sobald die Nachdem die föderierte Tabelle erstellt wurde, können Sie serverübergreifende Auswahlabfragen ausführen, als ob die Remote-Tabelle lokal wäre. Betrachten Sie beispielsweise die folgende Abfrage:
SELECT * FROM federated_table WHERE <condition>;
Diese Abfrage ruft Daten aus der Remote-Tabelle ab, die im CONNECTION-Attribut der föderierten Tabelle angegeben ist. Die Ergebnisse der Abfrage stehen lokal zur Verfügung, als ob sie aus einer Tabelle auf dem lokalen Server abgerufen würden.
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich serverübergreifende SELECT-Abfragen in MySQL effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!