Citation :Souci n°1, si je decide d'afficher la page suivante du classement -> nouvelle requete identique de classement.. à chaque fois je demande à MySQL de me classer 10000 joueurs, pour m'en afficher 50 ou 100, là déjà ya un souci non ? c'est comme demander à un imprimeur d'imprimé 10000affiches pour finalement en acheter que 100, on prend MySQL pour un con lol.Je sui pas du tout d'accord avec çà...
Souci n°2 (majeur!), si je navigue de pages en pages du classement comme ça parce que j'ai rien d'autres à foutre -> multiple requètes identique, et en supposant que le jeu marche bien et qu'il y a 49 autres mecs qui se font chier et qui naviguent aussi sur le classement -> multiple requètes identique x 50, rajoutons à cela que 250 autres joueurs voguent à d'autres occupations sur ton jeu -> multiple requètes identique x 50 + MySQL solicité ailleurs... resultat MySQL tourne à plein pot (ce qui ne veux pas dire qu'il explose, mais chaque chose a une limite).
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 çà!