SELECT SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*) zum Zählen von Zeilen
Beim Paginieren von Daten mit SQL gibt es zwei Methoden zur Bestimmung des Gesamtdatensatzes count: SQL_CALC_FOUND_ROWS und SELECT COUNT(*). Welcher Ansatz ist schneller?
Methode 1: SQL_CALC_FOUND_ROWS
Diese Methode fügt der anfänglichen SELECT-Anweisung die Option SQL_CALC_FOUND_ROWS hinzu. Nachdem Sie diese Anweisung ausgeführt haben, können Sie die Gesamtzahl der Zeilen abrufen, indem Sie SELECT FOUND_ROWS() ausführen.
Methode 2: SELECT COUNT(*)
Anstatt SQL_CALC_FOUND_ROWS zu verwenden, Diese Methode führt die ursprüngliche Abfrage ohne Änderungen aus. Die Gesamtzahl der Zeilen wird dann durch Ausführen einer separaten Abfrage ermittelt: SELECT COUNT(*) FROM table.
Leistungsvergleich
Die optimale Auswahl hängt von bestimmten Faktoren ab, z Indizes und Datenbankkonfiguration. Laut MySQL Performance Blog kann SQL_CALC_FOUND_ROWS eine unterschiedliche Leistung aufweisen, die von gleichwertig bis deutlich langsamer (bis zu 10x langsamer) als die Ausführung separater Abfragen reicht.
Empfehlung
Viele Benutzer berichten, dass Methode 2 (Ausführen von zwei Abfragen) im Allgemeinen eine bessere Leistung bringt. Es empfiehlt sich jedoch, beide Methoden mit repräsentativen Datensätzen zu vergleichen, um den optimalen Ansatz für eine bestimmte Umgebung zu ermitteln.
Das obige ist der detaillierte Inhalt vonSQL-Paginierung: „SELECT SQL_CALC_FOUND_ROWS' vs. „SELECT COUNT(*)' – Was ist schneller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!