Miglior metodo per contare le righe di una query

Fabio Grasso

Nuovo Utente
6 Nov 2014
26
0
0
35
www.grassofabio.com
Buona serata,sto facendo vari tentativi nel capire e scegliere il metodo migliore per contare le righe di una query.
Esempio di una tabella:

[table="width: 200"]
[tr]
[td]id[/td]
[td]marca[/td]
[td]prezzo[/td]
[/tr]
[tr]
[td]1[/td]
[td]nike[/td]
[td]80,00[/td]
[/tr]
[tr]
[td]2[/td]
[td]adidas[/td]
[td]80,00[/td]
[/tr]
[/table]

1) Metodo
$sql = "SELECT *
FROM scarpe";
$res = mysql_query($sql) or die($sql);

$res = mysql_num_rows($res);

echo $res;

Stampa 2 quindi funziona.

2) Metodo
$sql = "SELECT COUNT(id)
FROM scarpe";

$res = mysql_query($sql) or die($sql);

$res = mysql_fetch_row($res);

echo $res[0];
Stampa 2 quindi funziona.

Quale metodo è migliore?
Provo a dire la mia,correggetemi se sbaglio :) secondo me è meglio utilizzare COUNT(id) perchè in questo modo viene controllato solo il primo campo(id) fregandosene degli altri e quindi la ricerca sarà molto più veloce rispetto a SELECT * .
E' giusto il mio ragionamento?


Infine un'altra cosa che non ho capito è come mai scrivendo in questo modo:
$sql = "SELECT COUNT(id)
FROM scarpe";

$res = mysql_query($sql) or die($sql);

$res = mysql_num_rows($res);

echo $res;
Stampa 1 quindi non funziona?
Nel primo metodo usando mysql_num_rows con SELECT * funziona bene,mentre usandolo con SELECT COUNT(id) non funziona più,come mai?
 
Bhe, direi proprio che se lo scopo è solo quello di contare le righe risultanti da una query, usare COUNT sia la scelta migliore. Sicuramente risparmi risorse di sistema, e quasi sicuramente è anche più veloce.

Per quanto riguarda invece fare un mysql_num_rows su una query che usa COUNT darà sempre 1 come risultato. Infatti il risultato della query COUNT è una riga con un campo che contiene il numero di righe "contate" dalla query.
 

Discussioni simili