MySQL SQL_CALC_FOUND_ROWS for pagination performance
Instead of doing 2 queries to get the results and the number of possible results for a pagination on MySQL you can use SQLCALCFOUND_ROWS.
SELECT SQL_CALC_FOUND_ROWS id, name, slug, created
FROM your_table
WHERE slug = 'valid_slug'
LIMIT 0, 25
The query above will return 25 results as expected and to simply get the total number of possible results all you would need to do is:
SELECT FOUND_ROWS();
Just a note: This is great for pagination since it increases performance a bit, but for a normal query it might not be a good thing.
SQLCALCFOUND_ROWS forces MySQL to scan for ALL matching rows, even if they'd never get fetched. Internally it amounts to the same query being executed without the LIMIT clause.
There is a bunch of good info here: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html
Written by Cristiano Diniz da Silva
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Mysql
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#