Order by sur un count

dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005 - 31 déc. 2004 à 17:06
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005 - 31 déc. 2004 à 18:26
Bonjour,
Je souhaite executer un classement sur une table de vote.

SELECT voteVM, COUNT(numVM)
FROM vote
GROUP BY voteVM
ORDER BY 2 DESC, 1 ASC

(a savoir que mes 2 champs sont indexés)

Mon probleme est que d'effectuer un order by sur un count dans une table d'un million d'enregistrements demande 4 secondes à la requete !

Je cherche une optimisation possible

Par avance, merci.

DoR][aN

4 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
31 déc. 2004 à 17:30
Salut ;-)

pourquoi ne pas faire un "ALTER TABLE vote ORDER BY 2 DESC, 1 ASC" lorsque tu mets à jour ta table, tu n'auras plus besoin de faire ORDER BY lorsque tu fais une sélection ensuite ;-)

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
31 déc. 2004 à 17:49
Salut,

Je ne pense pas pouvoir trier ma table sur une donnée calculée.
Et je doute que cela soit plus souple de devoir trier la table a chaque opération.

Merci

DoR][aN
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
31 déc. 2004 à 17:59
Ouais...

Si tu nous donnais la structure de ta table ça nous aiderait je pense.

a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
31 déc. 2004 à 18:26
CREATE TABLE vote (
numVM mediumint(6) NOT NULL default '0',
dateVM smallint(5) unsigned NOT NULL default '0',
voteVM mediumint(6) NOT NULL default '0',
PRIMARY KEY (numVM,dateVM,voteVM),
KEY numVM (numVM),
KEY numVMdateVM (numVM,dateVM),
KEY voteVM (voteVM)
) TYPE=MyISAM;

DoR][aN
0
Rejoignez-nous