Maison > base de données > tutoriel mysql > Comment puis-je joindre des tables MySQL sur différents serveurs ?

Comment puis-je joindre des tables MySQL sur différents serveurs ?

Barbara Streisand
Libérer: 2024-12-08 15:38:10
original
476 Les gens l'ont consulté

How Can I Join MySQL Tables Across Different Servers?

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';
Copier après la connexion

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;
Copier après la connexion

Remarque :

  • L'utilisateur spécifié dans la chaîne CONNECTION doit disposer des privilèges nécessaires pour accéder aux tables distantes.
  • Les performances des requêtes fédérées peuvent varier en fonction de la latence du réseau et de la charge sur le serveur distant.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal