Ajouter un commentaire

nza2k
Optimiser une requête MySQL avec jointure (et count)

Bonjour,

J'aimerais savoir pourquoi la requêtre suivante prend tant de temps à retourner des résultats (entre 1 seconde et 8 secondes) :

SELECT u.ID_USER, u.userName, u.Registered, u.messages, u.thumb, u.ID_SEGMENT, u.ID_MESSAGES_SEGMENT, s.sites_count
FROM view_users u
left join view_sites_count s on u.ID_USER = s.id_user
ORDER BY s.sites_count DESC, u.messages DESC
LIMIT 0, 10

Comme vous l'avez peut-être deviné, cette requête interroge deux vues MySQL. J'avais commencé par interroger directement deux tables. Constatant que c'était trop lent, j'avais créé deux vues pour ne garder que les champs sélectionnés et faire un précalcul du count.

Que me conseillez-vous pour améliorer le temps de réponse : des optimisations au niveau de la BDD, de la requête ?

Merci par avance pour votre aide

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 III  TTTTTT  RRRR   BBBB   N   N 
I TT R R B B NN N
I TT RRRR BBBB N N N
I TT R R B B N NN
III TT R RR BBBB N N