Performance Belastung

Hi, wieviel Belastung erzeugt der SQL Befehl

“mysql_num_rows”

Ist dieses ein Befehl den man für Statistiken nutzen kann oder erzeugt der eine Belastung indem er nachzählt?

Meines wissens sollte er nur die Anzahl der Tabellen ausgeben ohne diese zu zählen. Wie schaut es damit aus? Am i right or wrong?

Nein…

Der PHP-Befehl liefert die Anzahl der Datensätze einer MySQL-Abfrage. Solltest du aber nicht zum reinen zählen der Datensätze verwenden.

Mfg :wink2:

Hmm ich habs immernoch net ganz verstanden,

ist es Performance belastend? Also zählt er Zeile für Zeile durch oder gibt er nur die Zeilenanzahl aus?

Das kommt darauf an, wie viele Datensätze du selektierst, aber zum reinen Zählen solltest du eine Query à la

SELECT COUNT() as sum FROM table

verwenden.

Mfg :wink2:

Ich mache es mit

$result = mysql_query(“SELECT * FROM xy”, $link); $num_rows = mysql_num_rows($result); echo "$num_rows

erzeugt dieses hohe performance Belastung?

Naja, so du ladest zuerst alle Datensätze vollständig herunten und zählst sie dann erst durch. Das verursacht hohen Traffic des Datenbank-Servers.

:ps:

Ich dachte dieser Befehl gibt nur die Zahl der Tabellen aus und läd sie nicht einzeln runter.
Hättest du einen Vorschlag wie ich den Befehl ersetzen kann für das gleiche Ergebnis?

$result = mysql_query(„SELECT * FROM eu_battle_net_urls“, $link); $num_rows = mysql_num_rows($result); echo „$num_rows Gilden[DE]\n“;

Würde es damit wesentlich sparsamer sein?
SELECT count(colum_name) AS nr_of_rows FROM tablename

und wie müsste es dann aussehen?

Vielleicht wäre das hier noch Sparsamer Hmm
$abfrage = ‚SELECT id FROM rater ORDER BY id DESC‘;
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_assoc($ergebnis);
echo 'Größte ID: ’ . $row[‚id‘];

Ich habe schonmal so rumgebastelt, denke aber nicht das das schon so gut ist
$result = mysql_query("SELECT count(ID) AS nr_of_rows FROM eu_battle_net, $link); $num_rows = nr_of_rows($result); echo „$num_rows Nachrichten\n“;

Der Befehl lädt nichts herunter, aber mit der Query davor:

lädst du alle Datensätze. Bitte beachte den Unterschied Tabelle - Datensatz.

Pardon ich komme jetzt garnicht mehr mit,
ich suche den Sparsamsten weg die Anzahl der Einträge in einer Datenbank auszugeben.

hi

$row = mysql_fetch_assoc(mysql_quer("SELECT COUNT(*) AS sum FROM tabelle")); echo $row['sum'];

^^genau das was mgier gesagt hat :stuck_out_tongue:

lg flo

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /users/deusex/www/myst/feeds/stats/stats.php on line

Top ^^

Mit einer vernünftigen Fehlerberichterstattung wäre dir aufgefallen, dass in deinem Query das FROM fehlt. (Außerdem könnte es sein, dass MySQL den Alias sum als Schlüsselwort interpretiert.)

xD habs danke