0

J'ai une table dans ma base de données que j'ai besoin de partitionner en fonction d'un attribut de clé étrangère. Le nombre de tables partitionnées est donc le même que le nombre de valeurs différentes présentes pour la clé étrangère.Partitionnement dynamique d'une table du serveur mySQL principal vers le serveur distant

EDIT: J'ai une configuration de réplication, où une table dans le maître est répliquée dans quatre serveurs esclaves. Les esclaves n'ont pas besoin de répliquer la table WHOLE dans le serveur maître, mais seulement une partition comme indiqué sur la figure. Comment peut-on y parvenir?

Image: Replicating partitions

+0

Veuillez ne pas utiliser "partition" - il a une implémentation technique spécifique dont vous ne parlez pas. –

+0

La "réplication" est la technique normalement utilisée pour synchroniser les serveurs "esclaves" avec un serveur "maître". Mais vous semblez vouloir que chaque esclave n'ait qu'un sous-ensemble des données? Cela peut être réalisé _if_ la scission se fait par base de données ou par table, et non par une clé. –

+0

Bottom line: MySQL n'a pas tout à fait les outils que vous demandez; soit inventez votre propre outil, soit repensez votre design. –

Répondre

0

vos données dans Split tables séparées ou des bases de données distinctes basées sur ce qui doit aller à ce périphérique. Alors 3 niveaux:

Master -> Relais -> Appareils

Chaque relais est à la fois esclave (le Maître) et Maître à un (ou plusieurs) périphériques. Dans le relais, les tables que vous faites et non veulent aller à l'appareil est déclaré ENGINE=BLACKHOLE. Les autres tables du relais sont déclarées normalement. Les relais pourraient être sur le même serveur que le maître, mais vous auriez besoin d'instances mysqld séparées, avec un port séparé (autre que 3306) pour chacune. Les frais généraux seraient plutôt minimes, d'autant plus que les Relais ne font rien d'autre que de transmettre un sous-ensemble des données.

Modifier (sur la base de l'image)

Pour limiter l'espace dans les esclaves, utiliser "replicate_do/ignore" commandes sur les esclaves. Cela ne diminuera pas la bande passante du Maître ou des Esclaves. Les paramètres replicate_ * rejetteront alors la plupart des données répliquées.

Introduisez les relais et trous noirs susmentionnés si vous devez limiter la bande passante aux esclaves.

+0

Je ne l'ai pas décrit correctement quand j'ai écrit que les dispositifs au deuxième niveau doivent "manipuler" les données qui correspondent à leur branche. Ils ont en fait besoin de stocker les données et de les transmettre via RF aux périphériques finaux car les périphériques finaux n'ont pas une puissance de calcul suffisante pour prendre en charge un serveur de base de données. – JuanV

+0

Toutes les données doivent être stockées dans une table du maître, mais il n'y a pas de restrictions sur l'ajout de plusieurs tables à la base de données si nécessaire pour la réplication. J'expire mieux dans une figure: http://i.imgur.com/F66H1Vy.jpg – JuanV

+0

Voir Modifier ...... –