Creo que en lugar de la subconsulta- que podría ser muy tardada- podrías usar
found_rows en combinación con SQL_CALC_FOUND_ROWS en la consulta. Con eso se supone que puedes saber cuántos registros hay en total sin no se usara LIMIT, de manera que puedes usarlo para paginar.
// Saludos