|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 5 ![]() |
Bonjour à tous, afin d'optimiser et d'accélérer mes requetes, j'ai suivi beaucoup de conseil pour optimiser ma base et afficher les données le plus rapidement possible.
A la recherche de la meilleure optimisation possible, j'hésite entre deux méthodes pour enregistrer les scores de mes joueurs : - une table "score" : on ajoute le score du joueur quand il gagne un puzzle - une table "score_total" : on update le score_total du joueur quand il gagne un puzzle cette méthode me permet ensuite d'afficher plus rapidement le classement des joueurs puisque je n'ai plus qu'a trier la table "score_total" par ordre décroissant. ou bien - une table "score" : on ajoute le score du joueur quand il gagne un puzzle puis lorsqu'on affiche le classement général des scores je fais, SELECT SUM(points), joueur AS somme FROM "score" GROUP BY joueur ORDER BY somme DESC mais cette requete est tres lente, ma table "score" contient plus de 2 millions de lignes. Merci d'avance de votre aide. |
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Bonjour,
Citation:
Si tu n'as pas besoin de cette fonction , alors tu n'auras au pire que deux champs à retourner pour chaque utilisateur Code :
SELECT points, joueur FROM score_total ORDER BY points DESC LIMIT x
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 5 ![]() |
Oui merci de ta réponse. Mais justement j'affiche aussi pour chaque joueur tous les puzzles qu'il a réussi.
Pour essayer d'alléger ma table des scores, je pensais faire un classement général par mois (et ainsi conserver les scores uniquement du mois en cours) car aujourd'hui je conserve les scores par puzzles de chaque joueur, ca représente 2 millions de ligne. Mais je ne sais pas comment faire pour calculer le score mensuel d'un joueur, si j'utilise ma premiere méthode, il faudrait que je créé une table pour chaque mois ? pour chaque année ? si j'utilise la seconde méthode, vu qu'il y a 2 millions de ligne a trier par joueur et par mois et faire la somme, la requete est beaucoup trop lourde. Si quelqu'un a des idées, merci d'avance. |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Citation:
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 5 ![]() |
Oui mais dans ce cas je suis obliger de faire :
SELECT DISTINCT joueur, SUM(points) AS somme FROM table_score WHERE date BETWEEN date1 AND date2 GROUP BY joueur ORDER BY somme DESC et cette requete prend 10 sec à s'exécuter. C'est beaucoup trop lent. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com