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'.
cette requete simple me ramène environ 100 000 enregistrements. temps serveur :0.3s
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
Je veux maintenant éliminer les doublons avec un distinct :
la requête met maintenant 16 secondes et me retourne 180 lignes. Le distinct pour réduire les 100 000 lignes fait mal...
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
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
Partager