IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les différents moteurs de stockage de MySQL

Image non disponible


précédentsommairesuivant

IX. Le moteur FEDERATED

  • Licence : GPL
  • Version de MySQL : 5.0.3
  • Type : Autre
  • Domaines d'application : Administration de base de données

IX-A. Description

Le moteur FEDERATED permet de déporter les données sur un serveur distant.

Il est possible par exemple, d'avoir une base dont les données sont réparties sur plusieurs serveurs distants géographiquement. Dans une base utilisant le moteur FEDERATED, on ne trouve qu'un fichier *.frm qui est la définition de table. Les données sont stockées sur un ou plusieurs serveurs distants. Par le mot "distant", il faut comprendre que le serveur possédant une table FEDERATED devient client d'un autre serveur MySQL. Cela oblige cet autre serveur à se trouver à l'extérieur ou dans un réseau local. En aucun cas il ne peut être le "localhost".

Cela peut être presque comparable à une vue pour base de données MySQL.

IX-B. Exemple de mise en place d'une structure Federated

Sur le serveur "visible", se trouve une base de données contenant deux tables utilisant le moteur FEDERATED et pointant vers deux serveurs distants. Les serveurs A et B contiennent chacun une table de type quelconque (par exemple MyISAM). Dans ce type de structure, les moteurs utilisés par les serveurs distants n'ont aucune importance.

Syntaxe de 'connection' :
Sélectionnez
scheme://user_name[:password]@host_name[:port_num]:/db_name/tbl_name
Serveur visible
Sélectionnez
CREATE TABLE t_user (
    id      int(20) NOT NULL auto_increment,
    idgroup int(10) NOT NULL,
    name    varchar(32) NOT NULL default '',    
    PRIMARY KEY  (id)
    KEY idgroup
)
ENGINE=Federated
CONNECTION='mysql://root@serverB:9306/t_user';


CREATE TABLE t_group (
    idgroup int(10) NOT NULL auto_increment,
    name    varchar(32) NOT NULL default '',    
    PRIMARY KEY  (id)    
)
ENGINE=Federated
CONNECTION='mysql://root@serverC:9306/t_group';
Serveur A
Sélectionnez
CREATE TABLE t_user (
    id      int(20) NOT NULL auto_increment,
    idgroup int(10) NOT NULL,
    name    varchar(32) NOT NULL default '',    
    PRIMARY KEY  (id)
    KEY idgroup
) ENGINE=MyISAM;
Serveur B
Sélectionnez
CREATE TABLE t_group (
    idgroup int(10) NOT NULL auto_increment,
    name    varchar(32) NOT NULL default '',    
    PRIMARY KEY  (id)    
) ENGINE=MyISAM;

Image non disponible

Dans les versions antérieures à MySQL 5.1x, la propriété contenant le paramétrage de connexion distante est COMMENT (mais elle ne servait pas pour autant à stocker des commentaires).

Quelques conseils
  • Il est important d'avoir exactement la même structure entre la table de type FEDERATED et la table distante.
  • Il est nécessaire de vérifier que le serveur distant est déjà activé avant d'y faire la moindre requête.
  • Il est possible de pointer vers une table distante qui elle aussi utilise le moteur FEDERATED. Il faut être sûr de la cartographie du serveur distant et donc de faire très attention à ne pas tomber dans une boucle infinie.
  • Si la structure de la table distante est différente de celle de la table FEDERATED attachée, le lien sera cassé.

IX-D. Fonctionnalités

Avantages
  • Permet de répartir la charge.
  • Pointer sur plusieurs bases de données distantes si elles acceptent les accès distants.
  • Supporte les index.
Inconvénients
  • Ne supporte que les commandes SQL simples (SELECT, DELETE, INSERT, UPDATE). Il n'est pas possible de faire ALTER TABLE, bien qu'il aurait été utile de pointer vers un autre serveur à la volée afin d'émuler un Load Balancing par exemple
  • Ne gère pas les transactions.
  • Les performances sont liées au réseau et à son débit.
  • Le mot de passe apparaît en clair dans la propriété COMMENT.
  • Pas de possibilité de savoir si des modifications ont eu lieu sur le serveur distant.
  • Faible disponibilité chez les hébergeurs.

IX-C. Conclusion

Ce moteur offre de grandes opportunités d'administration d'une base de données.

Avec ce moteur, il est possible de faire une base de données métier à partir de plusieurs bases réparties géographiquement sur des machines distinctes.

Il est à noter que, lors de l'écriture de cet article, les tests tentés sur ce moteur sont restés vains.


précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez.com. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.