aymeric45
Messages postés6Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention25 juin 2017
-
21 août 2006 à 22:39
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
23 août 2006 à 16:43
Chers amis développeurs, bonjour.
J'aimerais savoir, quelle est la solution la plus optimisée pour compter le nombre d'enregistrements sélectionnés par un SELECT.
<?php
//Solution 1
$sql=mysql_query('SELECT id FROM matable');
$nb=mysql_num_rows($sql);
//Solution 2
$sql=mysql_query('SELECT COUNT(*) FROM matable');
$nb=mysql_result($sql,0);
?>
Quelle solution est la plus rapide, pour 1 enregistrement ? pour x enregistrement ?
pcgpegase
Messages postés96Date d'inscriptionlundi 24 novembre 2003StatutMembreDernière intervention24 avril 20071 21 août 2006 à 23:14
Bonsoir !
Personnellement, je pencherais plus pour un SELECT COUNT(id) pour récupérer un résultat... mais bon c'est plus par habitude qu'autre chose ^^
Je ne saurais dire laquelle des 2 solutions est la plus rapide !
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 21 août 2006 à 23:21
Je donnerais aussi la solution 2 qui est plus propre (ça j'en suis sur) et je pense - gourmande en memoire (a verifier..)
.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 22 août 2006 à 09:07
moi je te dirai que ca depend de ce que tu fais.
si tu veu juste connaitre le nombre d'enregistrements, alors je te conseille sans hesiter le count.
par contre, si tu veu en plus traiter les enregistrements, alors peut etre que la 1ere solution est mieux, a voir.
mais ca ne reste qu'un avis personnel.
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 22 août 2006 à 09:42
Salut!
Le SELECT count( id ) est le plus rapide! ( et pas SELECT count( * ) )
En spécifiant l'id, la recherche sera plus rapide!
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Vous n’avez pas trouvé la réponse que vous recherchez ?
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 22 août 2006 à 10:07
Cookie...tu as une source pour ça ???
car il me semble avoir lu y' a qques mois, que le count(champ) et count(*) etait maintenant identique niveau perf.
vais essayer de retrouver l'info...
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 22 août 2006 à 10:14
Salut!
Si je me trompe pas: les tables MySQL sont réparties sur 3 fichiers, dont un qui ne contient que les indexs. Si tu spécifies count(index) ( donc le id ), ca ne parcourt que le fichier des indexs et c'est plus rapide... Enfin, il me semble que c'est ce que j'avais vu!
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 23 août 2006 à 08:40
Yop!
Alors, j'ai fait qq tests sur une table de 11'000 enregistrements (la table de posts d'un forum ipb):
Entre:
SELECT count(*) et count(id) >> pas de différence
Mais entre un:
SELECT pid puis mysql_num_rows
et SELECT count(*) puis mysql_fetch_row, il y a un facteur 200 au niveau du temps!
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 23 août 2006 à 15:01
le SELECT pid est 200 fois plus lent que SELECT count
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"