Heim >Datenbank >MySQL-Tutorial >„SQL_CALC_FOUND_ROWS vs. COUNT(*): Welche Methode ist für die Paginierung effizienter?'

„SQL_CALC_FOUND_ROWS vs. COUNT(*): Welche Methode ist für die Paginierung effizienter?'

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-14 07:30:11130Durchsuche

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

SQL-Leistung: SELECT SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*)

Stellen Sie sich ein Szenario vor, in dem Sie die Anzahl der zurückgegebenen Zeilen begrenzen müssen eine SQL-Abfrage für Paging-Zwecke. Um die Gesamtzahl der Datensätze zu ermitteln, gibt es zwei Hauptmethoden:

Methode 1: SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  

Methode 2: SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  

Es stellt sich die Frage: Welche Methode ist mehr? effizient?

Die beste Methode: Es kommt darauf an

Laut MySQL Performance Blog gibt es keine definitive Antwort. Peter Zaitsev, der Autor des Blogs, schlägt vor, dass die optimale Methode von der Indexkonfiguration und anderen Faktoren abhängt.

Allgemeiner Konsens

Allerdings gibt es viele Kommentare als Reaktion auf die Der Blogbeitrag scheint darauf hinzudeuten, dass SQL_CALC_FOUND_ROWS im Allgemeinen langsamer ist als das Ausführen von zwei Abfragen. Die gemeldete Leistungseinbuße kann erheblich sein und möglicherweise bis zu zehnmal langsamer sein.

Das obige ist der detaillierte Inhalt von„SQL_CALC_FOUND_ROWS vs. COUNT(*): Welche Methode ist für die Paginierung effizienter?'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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