2010-08-05 5 views
2

Q:Mysql utilisation de la base de données primaire

j'ai hérité d'un système qui se compose (pour simplifier) ​​de 2 serveurs d'applications qui écrivent dans une seule base de données maître. Un serveur d'applications effectue un certain nombre d'opérations {peu de temps, comme des milli secondes. } par unité de temps. L'autre serveur d'applications agit comme un serveur API, à travers lequel les clients interagissent. Ce serveur "API" fonctionne sur la moitié des tables de la base de données dont la plupart n'ont pas besoin de l'autre serveur d'application. Cependant, le serveur "API" provoque la perte de temps et de performances de l'autre serveur d'applications, à cause de son interaction avec SQL Server.

Je voulais savoir quelle serait une bonne approche pour résoudre ce problème.

idée est si loin

[1] créer une seconde base de données qui sera maître-maître avec asservies base de données en cours. Obtenir http://mysql-mmm.org/ scripts et en cours d'exécution puis. (concurrency?)

[2] commencent lentement à déplacer les tables de la base de données "master" vers une nouvelle base de données "API". (beaucoup de code existant ..)

[3] une sorte de file d'attente prioritaire SQL .. (degré de tolérance aux pannes peut-il être?)

+0

Est-ce lié au printemps? – Behrang

+0

bien, c'est l'une des technologies à ma disposition. Donc, l'arc de soulignement est que nous utilisons java w/printemps et mysql – Krolique

+0

je suppose que vous avez raison et cela n'a rien à voir avec java ou le printemps. J'espérais qu'il y a peut-être un paquet java "sql priority queue". – Krolique

Répondre

3

Étape 1 - déterminer où votre goulot d'étranglement est

Étape 2 - décidez où se situe votre meilleur retour sur effort

Si vous voulez simplement améliorer les performances, alors vous devez déterminer où se trouve le point lent. Idéalement, vous utiliseriez 3 hôtes, un pour chaque serveur d'application et un pour la base de données. Dans cette configuration, vous devriez pouvoir travailler rapidement si c'est la base de données qui travaille dur sur les disques, ou si c'est le chargement du CPU, verrouiller les conflits etc.

Une fois que vous savez où est le goulot d'étranglement, vous aurez beaucoup problème plus ciblé à résoudre. Les options que vous avez suggérées peuvent ou ne peuvent pas aider selon ce que le vrai goulot d'étranglement est.

Questions connexes