Bonjour,
je suis en Mysql 5.0.45.

j'ai une requete sur une table de 1.5 millions d'enregistrements dans la table 'ecritures'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT  compte.id_societe
FROM ecriture, compte
WHERE ecriture.id_compte = compte.id
AND ecriture.code = 04
cette requete simple me ramène environ 100 000 enregistrements. temps serveur :0.3s

Je veux maintenant éliminer les doublons avec un distinct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT  distinct(compte.id_societe)
FROM ecriture, compte
WHERE ecriture.id_compte = compte.id
AND ecriture.code = 04
la requête met maintenant 16 secondes et me retourne 180 lignes. Le distinct pour réduire les 100 000 lignes fait mal...
j'ai essayé avec un GROUP BY qui donne le même résultat dans le même temps.

j'ai essayé les attributs SQL_SMALL_RESULT et SQL_BIG_RESULT. sans effet particulier.
Un explain semble m'indiquer que les indexes ne sont d'aucune utilité pour faire le distinct.
Quelqu'un aurait quelques pistes pour accélérer l'éxécution d'un DISTINCT ?

Merci,

Xavier