Heim  >  Artikel  >  Datenbank  >  Wie kann ich mit OFFSET und LIMIT effizient die Gesamtzeilenzahl in der MySQL-Paginierung ermitteln?

Wie kann ich mit OFFSET und LIMIT effizient die Gesamtzeilenzahl in der MySQL-Paginierung ermitteln?

DDD
DDDOriginal
2024-11-23 21:16:15801Durchsuche

How to Efficiently Get Total Row Count in MySQL Pagination with OFFSET and LIMIT?

Ermitteln der Gesamtergebnisse in MySQL-Abfragen für Paginierung mit Offset und Limit

In Paginierungsszenarien ist die Bestimmung der Gesamtzahl der Ergebnisse für die Genauigkeit von entscheidender Bedeutung Seite Berechnungen. Die Verwendung von Offset und Limit zum Abrufen von Daten kann zu Bedenken hinsichtlich der Recheneffizienz führen, wenn versucht wird, die Gesamtzahl aus einer separaten Abfrage zu berechnen.

Um dieses Problem zu beheben, bietet MySQL mit SQL_CALC_FOUND_ROWS eine Lösung. Durch das Hinzufügen dieser Anweisung zu einer Abfrage berechnet die Datenbank die Gesamtzahl der übereinstimmenden Zeilen, ohne sie tatsächlich abzurufen:

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE category_id = 1 LIMIT 10 OFFSET 20;

Nach der Ausführung dieser Abfrage berechnet die Datenbank die Gesamtzahl der Zeilen mithilfe einer anderen internen Abfrage wie:

SELECT FOUND_ROWS();

Diese Technik bietet eine effiziente und genaue Methode zur Ermittlung der Gesamtergebniszahl.

Das obige ist der detaillierte Inhalt vonWie kann ich mit OFFSET und LIMIT effizient die Gesamtzeilenzahl in der MySQL-Paginierung ermitteln?. 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