SQL_CALC_FOUND_ROWS promises the total row count for free alongside a LIMITed page, in one query. The catch is that it forces MySQL to evaluate every matching row rather than stopping at the limit, which discards the optimisation the LIMIT was there to enable.
-- one query, but the LIMIT no longer short-circuits
SELECT SQL_CALC_FOUND_ROWS * FROM products WHERE brand_id = 17 LIMIT 24;
SELECT FOUND_ROWS();
-- two queries, both able to use indexes fully
SELECT * FROM products WHERE brand_id = 17 LIMIT 24;
SELECT COUNT(*) FROM products WHERE brand_id = 17;
The separate COUNT(*) can often be answered from a covering index without touching the table at all, so two cheap queries beat one expensive one. It is worth measuring on your own data rather than taking either side on faith — but the assumption that one query must be faster than two is the thing to let go of.