Bonjour à tous !
Voilà, j'ai crée récemment un site de statistiques pour un jeu.
Ce site récupère toutes les 24h les informations sur les joueurs en les historisant dans une table
Chaque jour à 00:00 après avoir récupéré ces stats, je fais, grâce à la table historique, le calcul de l'évolution en points du joueur.
Je fais donc :
On a donc un calcul... Et cette table fait 300.000 lignes maintenant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT joueur_hist_today.id, joueur_hist_today.pseudo, (joueur_hist_today.score - joueur_hist_yest.score) as evolution_score from joueur_hist joueur_hist_today inner join joueur_hist joueur_hist_yest on joueur_hist_today.id = joueur_hist_yest.id and date(joueur_hist_today.date) = date(joueur_hist_yest.date) + INTERVAL 1 DAY and date(joueur_hist_today.date) = CURRENT_DATE order by evolution_score desc limit 3
La requête met 19s et prend environ une seconde chaque jour.
Donc je me suis dit... il y a t'il moyen d'optimiser cette requête ( les INDEX sont normalement déjà en place )
Merci d'avance![]()
Partager