Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : mysql_num_rows() ou COUNT() ?? [ Base de données / MySQL ] (aymeric45)

lundi 21 août 2006 à 22:39:06 | mysql_num_rows() ou COUNT() ??

aymeric45

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 ?

Merci de me donner votre avis

Aymeric


lundi 21 août 2006 à 23:14:26 | Re : mysql_num_rows() ou COUNT() ??

pcgpegase

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 !

Bonne soirée !



lundi 21 août 2006 à 23:21:15 | Re : mysql_num_rows() ou COUNT() ??

davwart


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]

mardi 22 août 2006 à 09:07:41 | Re : mysql_num_rows() ou COUNT() ??

Guillemouze

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.

mardi 22 août 2006 à 09:42:30 | Re : mysql_num_rows() ou COUNT() ??

coockiesch

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???"

mardi 22 août 2006 à 10:07:56 | Re : mysql_num_rows() ou COUNT() ??

davwart


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]

mardi 22 août 2006 à 10:14:53 | Re : mysql_num_rows() ou COUNT() ??

coockiesch

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???"

mardi 22 août 2006 à 10:16:26 | Re : mysql_num_rows() ou COUNT() ??

davwart


ok... mais count(*) se base aussi sur le fichier index et ne parcourt pas la table, c'est pour ça d'ailleurs qu'un count(*) et  + rapide qu'un select *

------------------------------------- Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]

mercredi 23 août 2006 à 00:39:54 | Re : mysql_num_rows() ou COUNT() ??

Rati_12

faut utiliser selon la situation, si tu cherche juste a savoir le nombre, count suffit, mais si tu veut l'utiliser, alors mysql_num_rows(.

exemple


if (!((mysql_num_rows($req))>0)){
// on affiche les reponses
}
else
{
echo'aucune reponses';
}

mercredi 23 août 2006 à 08:40:45 | Re : mysql_num_rows() ou COUNT() ??

coockiesch

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???"


1 2

Cette discussion est classé dans : solution, mysql, sql, rows, num


Répondre à ce message

Sujets en rapport avec ce message

Problème de mysql_num_rows.. [ par nicomilville ] Salut,J'ai le code suivant :$db = mysql_connect($sql_host,$sql_user,$sql_pass); mysql_select_db($sql_bdd,$db); $requete = mysql_query("SELECT * FROM no. de ligne sdans mysql_num_rows [ par codomolo ] Bonjour,Je cherche à obtenir le no. de chaque ligne d'un mysql_num_rowsCe que je veux c'est de pouvoir sortir les données correspondant à la ligne en mysql_num_rows() [ par christian33 ] BonjourMon site existe depuis 2ans et a toujours fonctioné sur les divers hebregement que j'ai eucette semaine je suis passés chez OVH et certaines pa formulaire [ par didine6 ] Bonjour,J'ai un formulaire général qui quand je valide doit exécuter le code situé dans v_demande.phpOr il ne valide rien du tout.Dans ce formulaire, Enumération de résultats contenus dans une table SQL [ par Noiretulipe ] Voici mon problème : Pour mon site, j'effectue une section statistique. Pour réaliser celle-ci, j'ai créé une table "statistique" dans laquelle sont i Prob classe SQL. [ par Aaron ] Bonjour,Je viens de coder ce qui suit :class DB{var $NUM_ROW;var $RESULTS;         function __construct($server, $db, $login, $pwd){     $this->CNX = mysql_num_rows [ par LordBob ] Bonjour a tous,en fait j'aimerais juste savoir, pour connaitre le nombre de resultat que l'on a à une requête, on fait mysql_num_rows + 1?car j'ai l'i Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... [ par Florent06 ] SalutJe suis en train de faire une zone membres pour mon site. Dans la page d'inscription, il y a un script (pris ici) qui sert à Menu deroulant! je suis tres étonné [ par rachidphp93 ] Bonjour tt le monde,voila je suis débutant en php, j'ai essayé de créer un menu déroulant que j'alimente depuis une base de donnée. le problème c'est valeur par defaut d'un menu deroulant [ par rachidphp93 ] Bonjour tout le monde;voila un script qui ne fait pas ce que je veux!, en fait je fais une liste deroulante, je veux pour un nouve


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,076 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.