Gerade bei vielen Datensätzen werden diese häufig mit Limit ausgeführt, damit ein Paging eingesetzt werden kann.
Allerdings ist es auch immer eine wichtige Information für den User, wie viele Datensätzen gefunden wurden. MySQL Limit Anzahl Datensätze ausgeben benötigt allerdings die MySQL-Funktion SQL_CALC_FOUND_ROWS in Kombination mit FOUND_ROWS. Dadurch bekommt man dann die Gesamtzahl des abgefragten Queries ohne die Limit Einschränkung. So kann man sehr gut ein Paging Anwenden und den User die Gesamtzahl ausgeben. Das ist eine gute Möglichkeit performant zu bleiben, da man nicht zu viele Datensätze in das Frontend bringt und den Browser nicht zu viel Rendering aussetzt. Das wird leider auch gerne bei der Entwicklung übersehen. Gerade wenn mit APIs entwickelt wird.
MySQL Limit Anzahl Datensätze mit SQL_CALC_FOUND_ROWS und FOUND_ROWS
Hier ein konkretes Beispiel für die Abfrage
1 2 |
SELECT SQL_CALC_FOUND_ROWS name, email FROM users LIMIT 10; SELECT FOUND_ROWS(); |
Im Grunde werden hier 2 Abfragen ausgeführt. Hier gibt es zahlreiche Beiträge im Netz, die auf eine schlechte Performance hinweisen. Natürlich ist das ganze langsamer, als nur eine Abfrage mit einem Limit. Aber dennoch ist das ganze hier schneller, als 2 komplette Abfragen durchzuführen.
Blog-Post zum Thema Paging von neunzehn83
https://neunzehn83.de/blog/2010/07/13/blattern-mit-mysql-und-sql_calc_found_rows.html