Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2006, 00h00   #1
Membre du Club
 
Inscription : juin 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 116
Points : 47
Points : 47
Par défaut [Optimisation] Le plus rapide des 2 ?

Bonsoir,
Ma question est rapide mais je me questionne dessus depuis peu...
Quel est le plus rapide des moyens pour compter le nombre de lignes dans une requête :
$sql = $db->query('SELECT xx FROM zz');
$nombre = $sql->num_rows;

ou

$sql = $db->query('SELECT COUNT(xx) AS xx FROM zz');
$result = $sql_message->fetch_array();
$nombre = $resultat['xx'];

Merci de votre réponse.
shadowbob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 00h13   #2
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Le moyen le plus rapide est d'utiliser count() en php sur le tableau fetché de la requête SQL.
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 00h21   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Si on se limite à vouloir le nombre de lignes d'une table et rien d'autre alors la fonction SQL d'aggrégation COUNT() est vivement recommandée. En revanche, si on souhaite également récupérer des données la solution la plus performante dépendra du nombre de données présentes dans cette même table.


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 00h32   #4
Membre du Club
 
Inscription : juin 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 116
Points : 47
Points : 47
non uniquement le nombre de lignes.
Merci pour vos réponses

J'en attend encore 1 ou 2 avant de mettre résolu au cas ou...
shadowbob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 09h52   #5
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Je n'ai pas fait de tests, mais si les SGDD ont implémentés :

Code :
1
2
 
SELECT COUNT(xxxx) FROM yyyy;
c'est qu'il faut s'en servir.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 10h52   #6
Membre confirmé
 
Avatar de Julien.alkaza
 
Inscription : octobre 2004
Messages : 240
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : octobre 2004
Messages : 240
Points : 240
Points : 240
Envoyer un message via MSN à Julien.alkaza
+1!!!!

Si on a mis une marche arrière sur ta voiture, c'est pas pour faire jolie....

Là, c'est pareil!

Donc oui, utilise count()
__________________
Admin Réseaux & Systèmes.

Red Hat Certified Technician...#604006101698235
Julien.alkaza est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h14.


 
 
 
 
Partenaires

Hébergement Web