25-07-2008, 09:13 AM
des outils sont là pour simuler 800 000 clients en même temps :
OpenSTA par exemple.
OpenSTA par exemple.
25-07-2008, 09:13 AM
des outils sont là pour simuler 800 000 clients en même temps :
OpenSTA par exemple.
25-07-2008, 11:34 AM
J'aime beaucoup les réflexions de Roworll, je pense plus ou moins pareil (même si j'applique pas toujours :mauvais
Pour avoir justement eu des problèmes de performances (sur un très faible nombre d'enregistrement en plus) je peux dire que les index sa change la vie... Parfois j'index même des tables entières car je sais qu'il va y avoir beaucoup de requête sur tout les les champs de la table. Question HS: c'est quoi un verrou :heuuu:
25-07-2008, 11:52 AM
Les index doivent être choisis avec soins.
Plus tu as d'index, plus une mise à jour dans ta table prendra du temps si elle est liée à un index. Les INSERT et les DELETE modifient également les index qui doivent rester à jour. Les UPDATE ne modifie que les index référençant la/les colonnes modifiées. Donc, si tu as une table à 10 colonnes avec un index sur chaque colonne, je te laisse imaginer le massacre à chaque modification. Ensuite, les verrous sont des systèmes propres aux BDD pour garantir l'intégrité des données. MySQL dans sa version classique (MyIsam) InnoDB utilise un verrouillage par table. En gros, si quelqu'un modifie ou ajoute une information dans une table, personne ne peux ajouter/modifier (et même parfois lire) les informations tant que l'opération n'est pas terminée. En cas de charge, on peut arriver rapidement à des problèmes de verrouillage (LOCK) qui, s'empilant les uns sur les autres, vont plomber l'application et le serveur. InnoDB fonctionne avec un système de verrou par ligne. Seule la ligne modifiée est verrouillée/bloquée. C'est moins restrictifs qu'un système de verrou par table mais demande plus de ressources. Pour en savoir plus sur le sujet, je te conseille de jeter un oeil au modèle de gestion des verrous et des transactions d'InnoDB.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC
25-07-2008, 12:29 PM
Citation :Les index doivent être choisis avec soins. Je m'en doutais un peu, les tables que j'ai complètement indexé ne dépasse pas 3 champs. C'est principalement des tables de lien style: id id_joueur id_objet Je me coucherais moins con ce soir. Mais, on a aucun contrôle sur les verrous ?
25-07-2008, 01:46 PM
25-07-2008, 01:46 PM
En fonction de ton moteur de BDD, tu as un contrôle plus ou moins poussé sur les verrous.
Tu peux par exemple spécifier dans une transaction que tu acceptes/refuses que les données non validées (uncommited) soient lues par une requête concurrente. Chaque moteur de BDD possède son propre système mais en général ils font référence au TRANSACTION ISOLATION LEVEL. Je prends un exemple pour t'expliquer l'impact de ce système. Supposons que ton système utilise un CRON pour mettre à jour régulièrement le niveau de ressource des joueurs. Ce processus travaillant sur de gros volumes, il peut être relativement lent (disons 30 secondes). Pendant qu'il s'exécute, un joueur souhaite lancer une construction. - Lorsque le joueur accède à sa page, on peut se permettre de le laisser lire des données "sales". Peu importe si la quantité de ressources qu'il voit n'est pas tout a fait exacte. c'est juste une consultation. - Lorsque le joueur lance la construction, il est hors de question de se baser sur des valeurs non valides. On doit attendre que la MAJ des ressources soit terminée avant de démarrer le processus de vérification/validation de la construction. L'utilisation de transaction et de clauses particulière dans tes SELECT te permet de maîtriser ces problèmes de cohérence et même d'éviter des bugs parfois bien mystérieux. Encore une fois, je te conseille fortement de te lancer dans la lecture des système de verrous/transaction supportés par le moteur de BDD que tu utilises pour mieux appréhender le problème.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC |
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Monitorer la base de donnée? | Argorate | 2 | 3 654 |
13-09-2020, 04:08 PM Dernier message: Xenos |
|
[Résolu] Ma base de donnée est-elle correcte ? | Konroy | 9 | 3 999 |
08-12-2012, 04:07 PM Dernier message: Konroy |
|
[Résolu] Base de donnée pour t'chat dans chaque guilde | Dieu | 3 | 2 564 |
04-12-2011, 09:11 PM Dernier message: Dieu |
|
[Résolu] Array serialisé et taille du champs de la base de donnée | php_addict | 8 | 3 957 |
16-08-2011, 08:52 AM Dernier message: Sephi-Chan |
|
Architecture Base de donnée | ToraTora | 22 | 7 157 |
13-04-2011, 06:47 PM Dernier message: ToraTora |