Datenbank einträge zählen

Matthias Reitinger hat gesagt.:
Bitte nie mysql_num_rows zum Zählen verwenden, COUNT(*) ist da viel effektiver.

Huhu

davon hab ich noch nie etwas gelesen. Aber ich lerne gerne dazu.
Was hat das für einen Grund?
Warum soll man die Ausgabe von mysql_num_rows über ein echo nicht für die einfache Zählung der Selectstatements nehmen?

http://de3.php.net/manual/de/function.mysql-num-rows.php

Der count(*) lässt sich ja auch nicht unbedingt in jeder Abfrage mal eben mitlaufen, mit einem Subselect vielleicht, aber was hätte das für einen Vorteil?
 
Der Vorteil der Nutzung der MySQL-internen COUNT()-Funktion ist, dass nicht alle Datensätze (oder einzelne Attribute) selektiert werden müssen und somit resourcensparender ist. Die PHP-Funktion mysql_num_rows() sollte nur benutzt werden, wenn eine zusätzliche Information über eine bestimmte Abfrage benötigt wird.
 
Hi

danke für den ausführlichen Hinweis.

Ich denke, da muss man einfach mal zufällig drauf stoßen. Auch in meinem Buch habe ich keinen Hinweis darauf gefunden, dass die Ausgabe der num_rows "resourcenfresser" sind :-)

Aber ich glaubs Euch und werde es nicht mehr vergessen. Wobei es auch nachvollziehbar ist. Im ASP-Bereich gibts ja für die Ausgabe des RecordCounts auch keinen Standardwert. Will man die Ausgabe haben, muss man sich entspr. Werte aus Konstanten bedienen und das kostet in dem Falle auch Performance.

;)
 
Die Nutzung der mysql_num_rows()-Funktion sind keine „Resourcenfresser“ – hab ich auch nie behauptet. Sie benötigt nur eine vorhergehende SELECT-Abfrage, die leider meisten mit „SELECT *“ beginnt und dadurch MySQL (und wahrscheinlich auch andere Datenbanken) unnötig belastet, da alle betroffenen Datensätze (oder nur einzelne Attribute) ausgewählt werden müssen.


Danke übrigens, dass du mich wie einen Adeligen ansprichst.
[…] ich glaubs Euch […]
 
Gumbo hat gesagt.:
Danke übrigens, dass du mich wie einen Adeligen ansprichst.

hehe, das hättste wohl gerne, ich meinte zusätzlich auch denjenigen, der hier auf den Umstand aufmerksam gemacht hat :p und 2 ist Mehrzahl also Euch.
 
Hey,

aber ich hoffe doch, auch in Anbetracht dieses eindeutigen Verstoßes gegen die amtliche Regelung der deutschen Rechtschreibung, dass es dem Sinn nach so rübergekommen ist, wie ich es gemeint habe. Überdies ist es heute unüblich, jemanden in der 3. Person anzusprechen gel? Zumindest hast Du Dich jetzt für eine kurze Zeit ein bisschen adelig gefühlt, wenn man der Sache noch was Positives abgewinnen möchte. ;)

Ich will diesen Verstoß jetzt weder beschönigen, Herr Richter, noch möchte ich mich in weitere Rechtfertigungen verstricken, ich sehe meine Schuld ein gelobe absolute Besserung für die Zukunft.

Ohh man, dat gibbet doch net. :p :p
So, ich habe fertig! Das wird jetzt OT :D
 
Ich wollte dich nicht verurteile, „Angeklagter“, sondern lediglich auf deinen Fehler hinweisen.
 
Zurück