mysql_num_rows oder count(*)

sebastianv

Mitglied
Habe einen Script geschrieben, welcher mir die Anzahl der in der Tabelle vorhandenen Datensätze zurückgibt.

Habe allerdings zwei Versionen geschrieben und würd gerne von euch wissen, welcher Effektiver ist. Habe einmal mit select count (*) gearbeitet und einmal mit mysql_num_rows

Hier mal die beiden scripts:

PHP:
$sql = mysql_query('SELECT * FROM `phpbb_posts`');
$count = mysql_num_rows($sql);
oder
PHP:
$abfrage = "SELECT COUNT(*) FROM `phpbb_posts`";
$result = mysql_query($abfrage,$dbh);
$count = mysql_result($result,0);

Danke für eure Infos
 
Die „COUNT(*)“-Methode ist effektiver, wenn nur die Anzahl der Datensätze ermittelt werden soll. Die Methode mit der mysql_num_rows()-Methode ist nur dann effektiver, wenn sie zusätzlich zu einer Abfrage genutzt wird, bei der die ausgewählten Daten der Abfrage selbst auch benötigt werden.
Denn das Problem bei dem ersten Beispiel ist, dass sämtliche Daten der Tabelle ausgewählt werden, auch wenn diese gar nicht benötigt oder weiter verarbeitet werden. Bei der zweiten Variante hingegen wird nur der Wert der Anzahl der Datensätze ausgewählt.
 
Zurück