Please help optimiser un count en sql - SQL/NoSQL - Programmation
Marsh Posté le 01-03-2008 à 12:18:55
il te manque probablement un index sur la colonne "active"
http://dev.mysql.com/doc/refman/4. [...] index.html
Marsh Posté le 01-03-2008 à 12:20:27
non g un index sur la colonne active g essayé un index sur plusieurs colonnes car comme g dit g souvent d autres clauses ds le where mais aussi en index seul et ca m...
grr Merci
Marsh Posté le 01-03-2008 à 12:24:29
je v essayer de faire juste une table a 2 entrees une clef primaire et un index sur l autre d y mettre 100000 entrees
et de faire un bench du count avec en where l index et si ca rame aussi... j aurais deja ecarter a coup sur cette option
Marsh Posté le 01-03-2008 à 12:48:11
ben pas mieux g essayé et ca rame genre 3 dixieme de seconde...
Marsh Posté le 01-03-2008 à 15:15:54
l'index juste sur active, si il ne peut y avoir que deux valeurs 0/1, ne sert probablement a rien et tu devrais le dégager.
il faut que le critere soit suffisament discriminant pour qu'un index soit utile, et la si ls sgbd decide de l'utiliser il sera meme handicapant.
ceci dit juste pour 50000 records ca me parait bcoup 0.3 sec
Marsh Posté le 01-03-2008 à 17:35:20
ben je suis en en moteur myisam et c 0,2 pr 50000 c 0,3 pr 100000, et de pire en pire genre avec 200000 l ordi il bouge plus il meurt
c sur ke si je fait un count sans where c intantané mais bon c pas le but...
si KK1 a une id??? c pr faire une pagination selon les criteres choisis
Marsh Posté le 01-03-2008 à 17:42:41
merci casimimir
t as raison pr l index il fait ramer sur une valeur comme 0, 1
juse une autre tite question vu ke tu te gaves
il vaut mieux faire un index ar clef ou un index multiple??
sachant ke g des requetes avec une ou plusieurs clause ds le where ca varie????
et re merci!!!
donc la pr 50000 je suis a 0,1 bon mais c tjs 25 fois plus ke pas mal de requete
le truc c ke si ca monte a 1 millions d entree je suis mort???
Marsh Posté le 02-03-2008 à 15:22:11
ca dépend, il faut voir le nombre de critere, combien de criteres sont suffisament déterminant, lesquels sont systématiques.
parceque outre le nombre de champ sur lequel porte l'index, l'ordre a son importance aussi.
Marsh Posté le 01-03-2008 à 12:00:35
Bonjour voila mon pb
ma table toto a 50000 entrees et aurra surement a terme plusieurs dizaines de milliers de donnees
le count me sert a avoir le nombre d idtoto entre autre et donc a ma pagination
le count est instantané sans clause where mais avec...
voila une de mes requetes, le where peu etre plus etoffé
SELECT count(idtoto) as nb from toto where toto.active=1
mon gros probleme est que le count me bouffe tout lol il coute genre 1000 fois plus que pas mal de mes requettes et la ca me fou les boulles
MERCI de votre aide
Message édité par schum-hacker le 01-03-2008 à 13:17:14