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!