Question

Je sais que le partitionnement horizontal ... vous pouvez créer de nombreux tableaux.

Comment pouvez-vous faire cela avec plusieurs serveurs? Cela permettra à Mysql d’évoluer.

Créer des tables X sur des serveurs X?

Quelqu'un souhaite-t-il expliquer ou dispose-t-il d'un bon tutoriel pour débutant (pas à pas) qui vous apprendra à partitionner plusieurs serveurs?

Était-ce utile?

La solution

Avec MySQL, les utilisateurs effectuent généralement ce que l’on appelle une partition de base de données .

.

.

En résumé, vous aurez la même structure de base de données sur plusieurs serveurs de base de données. Mais il ne contiendra pas les mêmes données.

Ainsi, par exemple:

Users 1 - 10000: server A
Users 10001 - 20000: server B

La fragmentation (bien sûr) n’est pas une technique de sauvegarde, elle est destinée à distribuer des lectures et des écritures sur un cluster.

Les techniques utilisées pour partager sont le proxy MySQL, par exemple. Ce n'est rien de ce que HScale a inventé, c'est plus ou moins un simple script LUA qui distribue des lectures et des écritures sur différents serveurs principaux. Il devrait y avoir beaucoup d'exemples sur la forge MySQL.

Un autre outil (basé sur le proxy MySQL) est SpockProxy . Complètement adapté au sharding. Ils se sont également débarrassés de Lua, et ils ont travaillé sur différentes choses pour le rendre plus rapide que le proxy. Jusqu'à présent, je n'ai testé que SpockProxy, mais je ne l'ai jamais exécuté en production.

Maintenant, en dehors de ces mandataires, vous pouvez aussi vous séparer. Obligatoire serait une table principale, par exemple:

-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------

Construisez ensuite vos lectures et écritures vers le serveur. Pas très joli mais ça marche. Le prochain obstacle serait de le rendre plus facile à supporter. Ainsi, par exemple, server1 , server2 et server3 doivent constituer chacun un petit cluster.

Enfin, une IDDB de Digg constitue une autre approche intéressante. a>. Je ne sais pas s'ils ont déjà publié son code, mais leurs billets de blog donnent de très bons détails sur ce qu'il fait.

Faites-moi savoir si cela vous aide!

Autres conseils

Toutefois, vous devez garder à l’esprit que si, pour certaines raisons, vous souhaitez utiliser cette solution dans le cloud et la rendre multi-locataire, la configuration ci-dessus risque de devenir plus complexe. Pensez-y -

  1. vous vous êtes connecté au système et la base de données est sélectionnée (permutation de base de données) en fonction de la table d'organisation utilisateur
  2. Ce serait la nouvelle table principale à laquelle vous parlez maintenant avec ses propres esclaves
  3. Mais le point 2 ci-dessus nécessite également de la netteté maintenant, car vous voulez vous assurer que votre balance ne devienne pas un goulot d'étranglement.

Alors maintenant, la question est que vous aurez probablement besoin de penser à comment vous pouvez faire ce sharding dans un env. de type mster-esclave où les esclaves sont typiquement pour la lecture et les maîtres pour l'écriture.

acclamations! Gary

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top