22-06-2007, 03:35 AM
Zamentur a écrit :Je sui pas du tout d'accord avec çà...
Voici comment j'aurrais fait si il n'y a pas trop de classement:
Dans la table je creer une colone indexé pour chaque classement, on peut effectivement conciderer qu'un classement ce compte en point
Le nombre de point pour chaque classement du compte est modifié dés que le joueurs fait une action qui le modifie
Puis quand je desire obtenir le classement par exemple du 30eme au 60eme j'utilise tout betement ORDER BY classement LIMIT 30,60
Comme classement est indexé la requete ira tres vite a se faire car on ne fera que parcourir l'abre des indexs et mysql n'aurra aucun tris à faire...
Pour plus de precision sur cette methode: http://dev.mysql.com/doc/refman/5.0/fr/o...ation.html
A noter que les Index sont la plus importante des optimisations à faire dans un jeu (notament les jeux à grosse map(x,y) ou massivement multijoueur)
Sur une table de plus de 200 champs il peut etre interressant d'utiliser un/des index(s), pour determiner efficacement lesquel il suffit d'utiliser EXPLAIN
Ceci dit je ne remet pas en cause l'utilité d'un cache qui fera forcement gagné de la ressource sql, mais pas tant que çà!
Ben justement je me demandais si il y avait moyen de faire ça, je connaissais pas, c'est cool meme pas besoin de poser la question que j'ai la réponse :good:
En effet en indexé ça facilite à fond c'est indispensable, merci
Projet de WarGame en cours...
BrainStorming: 80%
Siteweb: IE/FF ca s'arrange..
Graphisme: Quelques tiles (provisoir)
Prog: 16%
(Bosse sur les profils maintenant...)
BrainStorming: 80%
Siteweb: IE/FF ca s'arrange..
Graphisme: Quelques tiles (provisoir)
Prog: 16%
(Bosse sur les profils maintenant...)