Помнится мне в версиях 1.5.x появилась фича от Toporchillo с модификацией запросов подсчета товаров при помощи SQL_CALC_FOUND_ROWS.
А я тогда говорил, что это бред! И правильно использовать второй полноценный запрос для getTotalProducts.
В 1.5 совсем плохо было с индексами и на небольших базах это возможно имело смысл. Но когда сейчас каждый второй магазин от 10 000 товаров, FULLSCAN всех таблиц участвующих в выборке товаров в категории и механизм FOUND_ROWS скорее вреден чем полезен и вот вам подтверждение с официального блога Percona
https://www.percona.com/blog/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/
Учиться, учиться и еще раз учиться! (c)