Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Tabellen über verschiedene Server hinweg verbinden?

Wie kann ich MySQL-Tabellen über verschiedene Server hinweg verbinden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 15:38:10454Durchsuche

How Can I Join MySQL Tables Across Different Servers?

Zwei Tabellen von verschiedenen Servern in MySQL mit Federated Engine abfragen

Frage:

Ist Es ist möglich, Tabellen von zwei verschiedenen MySQL-Servern auf einmal zu verbinden Abfrage?

Lösung:

Ja, es ist mit der MySQL Federated Engine möglich.

Implementierung:

Um Tabellen von zwei verschiedenen Servern zu verbinden, müssen Sie zunächst Verbundtabellen erstellen, die auf die Remote-Tabellen verweisen. Die föderierten Tabellen müssen die gleiche Struktur wie die Originaltabellen haben.

Hier ist ein Beispiel für die Erstellung einer föderierten Tabelle mit dem Namen federated_table1, die auf eine Remote-Tabelle mit dem Namen table1 auf Server1 verweist:

CREATE TABLE federated_table1 (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@server1:3306/db1/table1';

Sobald Sie Nachdem Sie die Verbundtabellen erstellt haben, können Sie diese wie gewohnt verknüpfen Tabellen:

SELECT a.field1, b.field2
FROM federated_table1 a
INNER JOIN federated_table2 b
ON a.field1 = b.field2;

Hinweis:

  • Der in der CONNECTION-Zeichenfolge angegebene Benutzer muss über die erforderlichen Berechtigungen für den Zugriff auf die Remote-Tabellen verfügen.
  • Die Leistung von Verbundabfragen kann je nach Netzwerklatenz und Auslastung auf dem Remote-Server variieren.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Tabellen über verschiedene Server hinweg verbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn