Optimisation SQL 300k lignes
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 :
Code:
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 |
On a donc un calcul... Et cette table fait 300.000 lignes maintenant.
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 :)