Bonjour,
J'ai fait une requete SQL sur une base qui compte 700 enregistrements (donc très petite) mais ma requête prends presque plus de 1min. je n'arrive pas à comprendre pourquoi, auriez-vous une idée ?
La requête consiste à récupérer le nombre de question par utilisateur, au total, par jour, la veille et par semaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT u.id, u.initial, u.nom, u.actif, u.planning, COUNT(DISTINCT q1.id) as 'fiche', COUNT(DISTINCT q2.id) as 'dfiche', COUNT(DISTINCT q3.id) as 'sfiche', COUNT(DISTINCT q4.id) as 'hfiche' FROM utilisateur u LEFT JOIN question q1 ON u.id = q1.id_user LEFT JOIN question q2 ON u.id = q2.id_user AND DATE(q2.date) = DATE(now()) LEFT JOIN question q3 ON u.id = q3.id_user AND q3.date >= DATE_SUB(now(),INTERVAL 7 DAY) LEFT JOIN question q4 ON u.id = q4.id_user AND DATE(q4.date) = DATE(DATE_SUB(now(),INTERVAL 1 DAY)) WHERE u.id_groupe = 1 GROUP BY u.id ORDER BY u.actif DESC, fiche DESC
J'ai un champs type "index" dans id_user et date sur la table question.
Je n'arrive pas à m'en sortir : (
Partager