All pdo querys ( mysql and postgre ) call to rowcount but this method dont work with MYSQL_ATTR_USE_BUFFERED_QUERY to false.
If you make a selec with 1000 rows and many columns all memory is set in pdo driver when execute the query.
execute or query, not in fetch.
so iterate it's stupid, because the driver download all data in the first.
This is a big problem, because if you have a little memory, you cant stream the rows with fetch.
the second option is good, but with MYSQL_ATTR_USE_BUFFERED_QUERY to true, it's stupid.
rowcount will must separate from excute, "I think"
If I want make one slow query and big, I can`t to use orm