Optimiser une requête

Par cid5420, il y a 10 ans


Base de données MySQL

Bonjour,

Sur une table avec 20 000 lignes, je dois faire une requête (voir plusieurs requête) qui compte le nombre de dossier qui ont le même id_pa, qui ont la même localité, qui ont l'état_pa = 'Déployé' et enfin où le nombre de dossier qui ont le même id_pa < 4

Donc pour cela, j'ai fait une requête qui fonctionne mais qui est très longue à s'éxécuter (43s)

SELECT COUNT(t1.dossier) AS countpa FROM ftth_optimum AS t1 WHERE t1.id_pa <> '' AND t1.localite = 'Laxou' AND t1.etat_de_pa = 'Déployé' AND (SELECT COUNT(t2.dossier) FROM ftth_optimum AS t2 WHERE t1.id_pa = t2.id_pa)< 4

Pouvez vous me dire comment optimiser cette requête ? Car je vais avoir un gros problème, étant donnée que je dois compter sur plusieurs localités, ma page risque d'être très lourde. En effet, je dois afficher des compteurs pour 5 localités

2 réponses

Huggy, il y a 10 ans

Essayes ceci

SELECT COUNT(t1.dossier) AS countpa FROM ftth_optimum AS t1 WHERE t1.id_pa <> '' AND t1.localite = 'Laxou' AND t1.etat_de_pa = 'Déployé' HAVING countpa < 4
cid5420, il y a 10 ans

Bonjour,
Cette reqête ne fonctionne pas !
J'ai résolu mon problème en contournant un peut via php.