Interroger deux tables de différents serveurs dans MySQL avec Federated Engine
Question :
Est-ce que il est possible de joindre des tables de deux serveurs MySQL différents en un seul requête ?
Solution :
Oui, c'est possible en utilisant le moteur fédéré MySQL.
Mise en œuvre :
Pour joindre des tables de deux serveurs différents, vous devez d'abord créer des tables fédérées qui pointent vers les tables distantes. Les tables fédérées doivent avoir la même structure que les tables d'origine.
Voici un exemple de création d'une table fédérée nommée federated_table1 pointant vers une table distante nommée table1 sur le serveur1 :
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';
Une fois que vous avez créé les tables fédérées, vous pouvez les rejoindre comme d'habitude tables :
SELECT a.field1, b.field2 FROM federated_table1 a INNER JOIN federated_table2 b ON a.field1 = b.field2;
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!