Heim > Datenbank > MySQL-Tutorial > SQL-Paginierung: „SELECT SQL_CALC_FOUND_ROWS' vs. „SELECT COUNT(*)' – Was ist schneller?

SQL-Paginierung: „SELECT SQL_CALC_FOUND_ROWS' vs. „SELECT COUNT(*)' – Was ist schneller?

Patricia Arquette
Freigeben: 2024-12-12 17:28:11
Original
395 Leute haben es durchsucht

SQL Pagination: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` - Which is Faster?

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage