Thread SQL_CALC_FOUND_ROWS()
(18 answers)
Opened by Froschpopo at 2007-05-13 21:14
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(). |