Beim Ausführen komplexer MySQL-Abfragen mit Paginierung („LIMIT“-Klauseln) kann es schwierig sein, die Gesamtzeilenanzahl zu ermitteln. Das zweimalige Ausführen der Abfrage, einmal ohne die LIMIT-Klausel für die Gesamtanzahl, kann ineffizient sein.
Glücklicherweise hat MySQL die Option SQL_CALC_FOUND_ROWS eingeführt, mit der Sie die Gesamtzeilenanzahl berechnen können, während Sie weiterhin die LIMIT-Klausel verwenden. So funktioniert es:
Beispielabfragen:
<code class="sql">-- Main query with SQL_CALC_FOUND_ROWS SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; -- Second query to get row count SELECT FOUND_ROWS();</code>
Einschränkungen und Alternativen:
Obwohl SQL_CALC_FOUND_ROWS eine praktische Lösung bietet, beachten Sie, dass seine Verwendung in MySQL 8.0.17 veraltet ist. In den meisten Fällen ist es immer noch schneller, die Abfrage zweimal auszuführen.
Als Alternative führt MySQL 8.0 die folgenden optimierten Optionen zum Abrufen der Zeilenanzahl ein:
Durch den Einsatz dieser Techniken können Entwickler die Gesamtzeilenanzahl in ihren paginierten MySQL-Abfragen effizient abrufen, ohne Geschwindigkeit oder Leistung zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit SQL_CALC_FOUND_ROWS effizient die Zeilenanzahl in paginierten MySQL-Abfragen ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!