Sven Rautenberg: mysql - Anzahl der Ergebnisse ausgeben

Beitrag lesen

Moin!

Beispiel:

$query="select * from table;";
if(!($response=@ mysql_query($query,$connection))){ error_function(); }
$anzahl=mysql_num_rows($response);

Dein Beispiel ist Müll!

Angenommen, die Datenbank enthält 1 Gigabyte an Daten, eine Million Datensätze. Dann würde das gesamte Gigabyte (oder zumindest der relevante Teil) von der Datenbank aus übertragen, bei PHP in einen Puffer geschrieben und davon dann die Anzahl ermittelt - nur um das DB-Resultat dann wieder wegzuwerfen.

Ich empfehle stattdessen lieber, die Datenbank das Zählen erledigen zu lassen:

  
SELECT count(*) as anzahl FROM table WHERE bedingungen  

Und mit PHP wird dann nur noch dieses eine DB-Ergebnis abgefragt, genauso, wie man es sonst üblicherweise auch macht. Das spart extrem viel Übertragungskapazität ein, und auch die Datenbank kann eventuell ganz anders optimieren, wenn sie weiß, dass nur die Anzahl gefragt ist, nicht aber die kompletten DB-Einträge.

- Sven Rautenberg

--
My sssignature, my preciousssss!