Bonjour à tous,
je sollicite votre aide sur un point de performance.
Je souhaite sur un de mes sites, faire un classement top 10 des membres suivant leur nombre de points gagnés en participant au site.
Voici ma requete sous MySQL:
Code :
- SELECT
- nom,
- prenom,
- SUM(point.point) as nbr_points
- FROM
- membre
- INNER JOIN point ON point.id_membre = membre.id_membre
- GROUP BY
- membre.id_membre
- ORDER BY
- nbr_points DESC
- LIMIT
- 0, 10
|
Pourquoi une table point? c'est pour pouvoir faire des historiques, des stats...etc.
Le probleme de cette requete est que ca calcule le nombre de points de tout le monde avant de me sortir le top 10. Plus il y a de membres, plus ca va ramer. Et plus il y a de points, plus ca rame également (je suppose).
Ma requete est syntaxiquement juste et je ne vois pas vraiment comment faire pour l'optimiser.
Question: est-il possible de faire mieux?
Merci beaucoup.
Message édité par welcominh le 02-09-2009 à 16:12:42
---------------
Direct-download.com, le moteur de recherche pour Mega