Modérateur PHPfrance |
8758 Messages
18 avr. 2017, 14:11
salut,
il y a plusieurs réponses possible.
La réponse simple mais qui complexifie la maintenance de l'architecture c'est d'avoir une base par client / utilisateur. La tu es certain que le mec qui sollicite trop la base n'impact que lui.
Multi plier les tables par clients / utilisateurs c'est une connerie (avec des tables, users_toto, users_tata, users_droit_tata,users_droit_toto ...) tu va au devant des emmerde.
Avoir les mêmes tables pour tout le monde c'est la solutions simple généralement utilisé et qui satisfait la plus part des cas.
Par contre il y a la possibilité d'un client / utilisateur qui sollicite plus la base que les autres.
Un DBA peux régler la chose, par exemple en utilisant les quotas (notamment de connexion simultanée), c'est ce que fait un hébergeur qui n'as pas une instance par client hébergé, mais des pleins de client sur une même instance.
un autre problème c'est qu'un grand nombre de données peux ralentir les opérations, la il faut te pencher sur l'optimisation de ta base de données (bien mettre un index sur la clef étrangère qui identifie le client / utilisateur, ainsi que sur les colonnes utiles dans les recherches).
L'optimisation d'une base de données c'est pas mal de taf et parfois de dé-normalisation
Les sgbd peuvent encaisser de grosse sollicitation et des gros volumes de données, as toi de voir quel sera le volume réel que tu estimes pour éviter une migration d'architecture coûteuse.
j'allais oublier, dans la vrai les serveurs de données ne sont pas seul, ils sont redondés et / ou en cluster ce qui signifie, que la charge est répartie sur plusieurs serveur et donc le problème est moindre.
C'est une solution souvent obligatoire que de passer par l'architecture afin d'absorber une partie de la charge.
@+
Il en faut peu pour être heureux ......