Thread SQL_CALC_FOUND_ROWS() (18 answers)
Opened by Froschpopo at 2007-05-13 21:14

nepos
 2007-05-13 21:25
#35470 #35470
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Dein Problem liegt an der Arbeitsweise von SQL_CALC_FOUND_ROWS. Ohne dieses Schlüsselwort zieht das Limit und die Datenbank muss nicht alle 400000 Bilder durchgehen. SQL_CALC_FOUND_ROWS liefert die Anzahl der Zeilen, die deine Abfrage ergeben würde ohne die Berücksichtigung der LIMIT-Klausel. Die Datenbank muss also alle Ergebniszeilen berechnen, um die Anzahl bestimmen zu können. Drum dauerts eben so lange.

Wenn du nur die Anzahl der Ergebnisse dieses SELECTs willst, also unter Berücksichtigung des LIMIT, dann lass SQL_CALC_FOUND_ROWS weg und benutz nach dem SELECT die Funktion FOUND_ROWS().

Nachlesen kannst du das ganze hier: http://dev.mysql.com/doc/refman/5.1/en/information-functions.html
bei der Funktion FOUND_ROWS().

View full thread SQL_CALC_FOUND_ROWS()