Maison >base de données >tutoriel mysql >Comment puis-je effectuer efficacement des requêtes SELECT inter-serveurs dans MySQL ?
Requêtes de sélection multi-serveurs MySQL : un guide détaillé
Lorsque vous travaillez avec plusieurs serveurs MySQL dispersés géographiquement, la nécessité d'une une manipulation des données du serveur se produit. L'un de ces scénarios est la nécessité de sélectionner des données dans une table sur un serveur et de les insérer dans une table sur un autre serveur situé à des kilomètres l'un de l'autre.
Pour relever ce défi, MySQL offre la possibilité d'établir des tunnels SSH pour faciliter la sécurité. communication entre serveurs. Cependant, il est important de noter que l'accès direct aux tables entre serveurs via les tunnels SSH n'est pas pris en charge par MySQL.
Au lieu de cela, une fonctionnalité puissante appelée tables fédérées offre une solution élégante à ce problème. Avec les tables fédérées, vous pouvez créer une table proxy locale représentant une table distante sur un autre serveur. Cela vous permet d'exécuter des requêtes sur la table fédérée locale comme si la table distante était physiquement présente sur le serveur local.
Création de tables fédérées
Pour créer une table fédérée , vous devez d'abord définir la table distante sur le serveur où elle réside. Une fois la table distante établie, vous pouvez procéder à la création d'une table fédérée sur le serveur local en utilisant la syntaxe suivante :
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
Dans cet exemple, l'attribut CONNECTION spécifie les détails de la table distante, y compris le nom de la base de données, nom de la table, nom d'utilisateur et mot de passe.
Exécution de requêtes inter-serveurs
Une fois le table fédérée a été créée, vous pouvez exécuter des requêtes de sélection inter-serveurs comme si la table distante était locale. Par exemple, considérons la requête suivante :
SELECT * FROM federated_table WHERE <condition>;
Cette requête récupérera les données de la table distante spécifiée dans l'attribut CONNECTION de la table fédérée. Les résultats de la requête seront disponibles localement, comme s'ils avaient été obtenus à partir d'une table sur le serveur local.
Considérations supplémentaires
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!