Bei einer Tabelle mit 1000 Einträgen wäre es wohl nicht so gut,
erst ein select zu machen, dann ein mysql_num_rows, um dann
Datensatz 90-100 anzuzeigen.
Bei Tabellen wo sowie alle Zeilen ausgelesen werden, kannste
dir das extra count(*) sparen.
TBT Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!
Wenn COUNT() nicht in Verbindung mit WHERE oder LIKE verwendet wird, also zur Ermittlung der Gesamtzahl von Spaltenwerten, dann ist COUNT() darauf optimiert, sehr schnell ein Ergebnis zurückzugeben.
es kommt wirklich darauf an, was du weiter mit dem daten machts,
wenn du sagen wir mal nur schlicht die anzahl der spalten für dieses datums wissen willst, dann würde ich count(*) ...where..
nehmen, möchstes du aber sagen wir mal jetzt noch alle daten ausgeben, würde ich die anzahl mit num_rows errechnen, weil du dir ja eine sql anweisung dann sparst.
Eine hochinteressante Diskussion.
Ich verwette beinahe meinen Arsch darauf, dass mysql_num_rows immer schneller ist als count, weil es nämlich sozusagen als Nebenprodukt eines jeden Selects anfällt und dessen Abfrage eine reine "Formalität" ist.
mfg
die Selection der Daten erfolgt aber nur in der Datenbank, und dafür ist ein RDMS ja nunmal da und optimiert.
Das langsamste ist da wohl der Transfer von der Datenbank zum PHP Code.
Außerdem zählt bei vielen Hostern (Puretec auch !) der Transfer zwischen Datenbankserver und Webserver mit zum Trafficvolumen.
Da macht es besonders Spass, jedesmal 100-150KB aus der Datenbank zu lesen, um dann in einer super optimierten HTML-Seite von 4KB ein "es sind 6785 Datensätze in der DB" auszugeben. So bekommt man sein Monats Traffic Limit auch voll
Mach dochmal auf eine 1000 Zeilen Tabelle ein
select * from und danach ein myqsl_num_rows.
und vergleiche dies mit einem count(*)
danach das ganze nochmal für
select * from ... limit 0,10
TBT Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!
Original geschrieben von CHnuschti Eine hochinteressante Diskussion.
Ich verwette beinahe meinen Arsch darauf, dass mysql_num_rows immer schneller ist als count, weil es nämlich sozusagen als Nebenprodukt eines jeden Selects anfällt und dessen Abfrage eine reine "Formalität" ist.
mfg
ja, interessant, also ich verwette mein arsch auf das gegenteil, weil ohne where muss mysql bestimmt nur irgendwo einwert auslesen, der beim jeden insert incrementiert wird !
Kommentar