suite a des problemes de ralentissement serveur, je suis en train d essayer d optimiser le mieux possible mes requetes
je suis sur MySQL 3
voici une des requetes que je retrouve dans mon slow-query.log
CODE
SELECT count( * ) AS PAGE
FROM ANNONCES a, DEPARTEMENT b, REGION c, AGENCES d
WHERE a.IDDEPARTEMENT = b.IDDEPARTEMENT
AND b.IDREGION = c.IDREGION
AND d.IDAGENCE = a.IDAGENCE
AND a.ACTIF =1
AND b.ACTIF =1
AND c.ACTIF =1
AND c.IDREGION = '16'
AND b.IDDEPARTEMENT LIKE '%'
AND (
(
NOT (
a.DESCRIPTIONLONGUE = ''
)
)
OR (
a.LOCA =1
)
)
AND d.ACTIF =1
ORDER BY DATE DESC
FROM ANNONCES a, DEPARTEMENT b, REGION c, AGENCES d
WHERE a.IDDEPARTEMENT = b.IDDEPARTEMENT
AND b.IDREGION = c.IDREGION
AND d.IDAGENCE = a.IDAGENCE
AND a.ACTIF =1
AND b.ACTIF =1
AND c.ACTIF =1
AND c.IDREGION = '16'
AND b.IDDEPARTEMENT LIKE '%'
AND (
(
NOT (
a.DESCRIPTIONLONGUE = ''
)
)
OR (
a.LOCA =1
)
)
AND d.ACTIF =1
ORDER BY DATE DESC
voici le explain :
CODE
table type possible_keys key key_len ref rows Extra
c const PRIMARY,ACTIF PRIMARY 8 const 1
a ALL IDDEPARTEMENT,IDAGENCE,ACTIF,LOCA NULL NULL NULL 8224 where used
b eq_ref PRIMARY,IDREGION,ACTIF PRIMARY 8 a.IDDEPARTEMENT 1 where used
d eq_ref PRIMARY,ACTIF PRIMARY 8 a.IDAGENCE 1 where used
c const PRIMARY,ACTIF PRIMARY 8 const 1
a ALL IDDEPARTEMENT,IDAGENCE,ACTIF,LOCA NULL NULL NULL 8224 where used
b eq_ref PRIMARY,IDREGION,ACTIF PRIMARY 8 a.IDDEPARTEMENT 1 where used
d eq_ref PRIMARY,ACTIF PRIMARY 8 a.IDAGENCE 1 where used
je ne comprends tres bien comment cela marche
j ai bien mes index sur tous les champs apres le WHERE
peut etre que c est un cas particulier car c est un COUNT*
merci de m eclairer