pg_num_rows ou count(id), le plus rapide ?

pg_num_rows ou count(id), le plus rapide ? - SQL/NoSQL - Programmation

Marsh Posté le 16-04-2007 à 09:54:00    

tout est dans le titre :)
 
Qu'est-ce qui est le plus rapide, le plus recommandé ?
 

Code :
  1. $sql = pg_query("SELECT id FROM table" );
  2. $nb = pg_num_rows($sql);


ou

Code :
  1. $sql = pg_query("SELECT count(id) as nb FROM table" );
  2. $data = pg_fetch_array($sql);
  3. $nb = $data['nb'];


Reply

Marsh Posté le 16-04-2007 à 09:54:00   

Reply

Marsh Posté le 16-04-2007 à 11:25:19    

je dirais que count est plus performant parce qu'il fetche qu'un seule ligne et donc stresse moins le réseau ;)

Reply

Marsh Posté le 16-04-2007 à 11:53:38    

+1
 
mise à part si PHP supporte des instructions particulières sur le drivers MySQL.
 
En C# par exemple, on peut retourner le nombre de lignes retournées par une requête sans retourner les données, ce qui évite un count.
 
Mais dans tous les cas, le COUNT() reste le plus lisible et sémantiquement le plus correct, donc il veut mieux l'utiliser.
 
En fait, le num_rows n'est utile que si tu as besoin du détail de résultat ET du nombre de lignes (pour faire un %age par exemple)

Reply

Marsh Posté le 16-04-2007 à 12:03:32    

Merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed