Lorsque vous créez une table FEDERATED
, le
serveur crée un fichier de définition de fichier dans le
dossier de données. Le fichier porte le nom de la table et
l'extension .frm
. Aucun autre fichier n'est
créé, car les données résident en fait sur un autre serveur.
C'est la différence principale avec un moteur de table local.
Pour les tables locales, les fichiers de données sont locaux.
Par exemple, si vous créez une table MyISAM
du nom de users
, le gestionnaire
MyISAM
crée un fichier de données appelée
users.MYD
. Un gestionnaire local lit, écrit
et efface les données sur un fichier local, et les données
sont enregistrées dans un format particulier au gestionnaire.
Pour lire les lignes, le gestionnaire doit analyser les colonnes
des tables. Pour écrire les lignes, les valeurs des colonnes
doivent être converties en un format linéaire.
Avec le moteur de table MySQL FEDERATED
, il
n'y a pas de données locales pour la table : par exemple, il
n'y a pas de fichier .MYD
. Au lieu de cela,
un serveur de base de données distant se charge de stocker les
données de la table. Cela impose l'utilisation du protocole
client MySQL pour lire, écrire et effacer les données. La
lecture des données est initiée via la commande SQL
SELECT * FROM
. Pour lire le
résultat, les lignes sont lues avec la fonction C
tbl_name
mysql_fetch_row()
, puis converties en
colonnes tel que la commande SELECT
l'attent,
au format demandé par le gestionnaire
FEDERATED
.
Le processus de base est le suivant :
Les commandes SQL sont re¸ues localement.
Les commandes sont passées au gestionnaire MySQL (au format du gestionnaire)
Les commandes sont passées à l'API client MySQL (les données sont converties en appel SQL)
Les commandes seont recues par la base de données distante, via l'API client.
Les résultats, s'il y en a, sont convertis au format du gestionnaire.
Les résultats sont re¸us localement.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.